# Bulk Truth Social Profile Scraper - Fast & Cheap (`lofomachines/truth-social-scraper-api`) Actor

Extract posts, profiles, media and engagement metrics from any public Truth Social account. Fast, no login required, pay per result.

- **URL**: https://apify.com/lofomachines/truth-social-scraper-api.md
- **Developed by:** [Lofomachines](https://apify.com/lofomachines) (community)
- **Categories:** Integrations, Social media, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Truth Social Scraper 🇺🇸 — Posts, Profiles & Engagement (No Login)

**Extract posts, profiles, media, and engagement metrics from any public Truth Social account — in seconds, with no account, no login, and no API key.** Just paste a username and press start.

The **Truth Social Scraper** turns any public Truth Social profile into clean, structured, ready-to-use data. Track **Donald Trump** and thousands of other public figures, brands, journalists, and politicians. Get every post with full text, images, videos, link previews, hashtags, mentions, polls, repost data, and complete engagement numbers — exportable to **JSON, CSV, Excel, or via API**.

Built for speed and priced to scale, this is the fast, affordable way to collect Truth Social data for research, monitoring, journalism, trading signals, and AI pipelines.

---

### ✅ Why choose this Truth Social Scraper

- **No login, no API key, no cookies.** Public data only — you never share credentials.
- **Any public profile.** Enter a username, an `@handle`, or a full profile URL.
- **Bulk-ready.** Scrape one profile or dozens in a single run.
- **Rich, clean dataset.** 40+ well-structured fields per post, consistently formatted.
- **Date filtering.** Grab only posts after a specific date, or a full history.
- **Fast & cost-efficient.** Optimized to deliver more posts per credit than the competition.
- **Export anywhere.** JSON, CSV, Excel, HTML, or straight into your app via the Apify API.

---

### 🎯 Who it's for & what it solves

| Use case | What you get |
| --- | --- |
| **Political & election monitoring** | Track statements, timing, and reach of politicians and public figures in real time. |
| **Trading & market sentiment** | Turn high-impact posts into signals for finance, crypto, and news-driven strategies. |
| **Journalism & fact-checking** | Build searchable archives of public statements with timestamps and full context. |
| **Academic & social research** | Collect structured datasets for discourse, network, and sentiment analysis. |
| **Brand & reputation monitoring** | See how brands, products, and topics are discussed and shared. |
| **AI & LLM datasets** | Feed clean, labeled social text and metadata into training and RAG pipelines. |
| **Content & trend analysis** | Measure engagement, spot viral posts, and benchmark accounts over time. |

---

### 🚀 How to use it (3 steps)

1. **Add profiles** — paste one or more usernames, `@handles`, or profile URLs.
2. **Set the amount** — choose how many posts per profile, and optionally a start date.
3. **Run** — download your dataset as JSON/CSV/Excel or pull it from the API.

No technical setup. No authentication. It just works.

#### Example input

```json
{
  "profiles": [
    "realDonaldTrump",
    "@DonaldJTrumpJr",
    "https://truthsocial.com/@DevinNunes"
  ],
  "maxPosts": 200,
  "onlyPostsAfter": "2025-01-01",
  "includeReplies": false,
  "includeReposts": true,
  "onlyWithMedia": false,
  "includeProfileDetails": true
}
````

You can also use friendly date shortcuts in `onlyPostsAfter`, such as `7 days`, `3 months`, or `1 year`.

#### Example output (one post)

```json
{
  "id": "111234567890123456",
  "postUrl": "https://truthsocial.com/@realDonaldTrump/111234567890123456",
  "createdAt": "2025-06-14T13:42:07.000Z",
  "text": "THANK YOU to everyone in Iowa. A GREAT day!",
  "language": "en",
  "isReply": false,
  "isRepost": false,
  "isQuote": false,
  "repliesCount": 4820,
  "repostsCount": 9130,
  "likesCount": 41250,
  "engagementTotal": 55200,
  "authorUsername": "realDonaldTrump",
  "authorDisplayName": "Donald J. Trump",
  "authorVerified": true,
  "authorFollowersCount": 8900000,
  "hasMedia": true,
  "mediaCount": 1,
  "media": [
    {
      "type": "image",
      "url": "https://static-assets.example/media/abc.jpg",
      "previewUrl": "https://static-assets.example/media/abc_small.jpg",
      "width": 1200,
      "height": 800
    }
  ],
  "card": null,
  "hashtags": [],
  "mentions": [],
  "inputProfile": "realDonaldTrump",
  "scrapedAt": "2025-06-15T09:00:00.000Z"
}
```

Every item includes post text and HTML, timestamps, visibility, engagement counts, author details, media, link previews, polls, hashtags, mentions, repost/quote context, and group info when available.

***

### 🔌 Integrations & automation

Connect Truth Social data to the tools you already use — no code required:

- **Make (Integromat)** — trigger scenarios on new posts and route data anywhere.
- **n8n** — build automated monitoring and alerting workflows.
- **Zapier** — push posts to Sheets, Slack, Notion, Airtable, and 6,000+ apps.
- **Apify API & webhooks** — schedule runs, stream results, and integrate into any stack.
- **Google Sheets / Excel** — one-click exports for analysts and non-technical teams.

Schedule runs to monitor accounts hourly or daily and get fresh data automatically.

***

### ❓ FAQ

**Do I need a Truth Social account or password?**
No. The scraper works with public data only — you never log in or share credentials.

**Can I scrape multiple profiles at once?**
Yes. Add as many public profiles as you like in a single run.

**Can I get only recent posts?**
Yes. Use `onlyPostsAfter` with a date (`2025-01-01`) or a shortcut (`30 days`).

**What formats can I export?**
JSON, CSV, Excel, HTML, RSS, and the Apify API.

**Is there a limit to how many posts I can collect?**
Set `maxPosts` to any number, or `0` to collect all available posts per profile.

***

### 🧰 More scrapers you'll love (by the same author)

Pair Truth Social data with these popular Actors to build a complete monitoring and research stack:

- 📰 [Google News Scraper](https://apify.com/lofomachines/google-news-scraper) — track news coverage on any topic or person.
- 👽 [Reddit Scraper & AI Insights](https://apify.com/lofomachines/reddit-ai-insights) — posts, comments & sentiment from Reddit.
- 📣 [Brand Monitoring AI](https://apify.com/lofomachines/brand-monitoring-ai) — mentions, sentiment & reputation across the web.
- 💬 [Telegram Keyword Search Scraper](https://apify.com/lofomachines/telegram-keyword-search-scraper) — surface public Telegram chatter by keyword.
- 💼 [LinkedIn Post Search Scraper](https://apify.com/lofomachines/linkedin-post-search-scraper) — find and collect public LinkedIn posts at scale.

Browse the full collection 👉 [apify.com/lofomachines](https://apify.com/lofomachines)

***

### ⚖️ Fair use

This tool collects **publicly available** information only. You are responsible for using the data in compliance with applicable laws and platform terms, including privacy and data-protection rules (such as GDPR/CCPA where relevant). Not affiliated with, endorsed by, or connected to Truth Social or Trump Media & Technology Group.

***

#### Keywords

Truth Social scraper, Truth Social API, scrape Truth Social, Truth Social data export, Donald Trump posts scraper, Truth Social posts, Truth Social profile scraper, social media monitoring, political sentiment analysis, Truth Social crawler, export Truth Social to CSV, Truth Social engagement metrics.

# Actor input Schema

## `profiles` (type: `array`):

One or more Truth Social profiles. You can paste a username (realDonaldTrump), a handle (@realDonaldTrump) or a full profile URL (https://truthsocial.com/@realDonaldTrump).

## `maxPosts` (type: `integer`):

Maximum number of posts to collect for each profile. Use a smaller number for a quick sample, or a larger one for a full history. Set 0 for no limit (collect everything available).

## `onlyPostsAfter` (type: `string`):

Optional. Collect only posts published on or after this date. Accepts a date like 2025-01-01 or a relative value like 7 days, 3 months, 1 year.

## `includeReplies` (type: `boolean`):

Turn on to also collect the profile's replies to other users. Off by default, so you only get original posts.

## `includeReposts` (type: `boolean`):

Turn on to also collect content the profile reposted from other accounts.

## `onlyWithMedia` (type: `boolean`):

Turn on to keep only posts that contain an image, video or GIF.

## `includeProfileDetails` (type: `boolean`):

Turn on to attach rich author information (bio, followers, verification, website and more) to each collected post.

## Actor input object example

```json
{
  "profiles": [
    "realDonaldTrump"
  ],
  "maxPosts": 50,
  "onlyPostsAfter": "2025-01-01",
  "includeReplies": false,
  "includeReposts": true,
  "onlyWithMedia": false,
  "includeProfileDetails": true
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "profiles": [
        "realDonaldTrump"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lofomachines/truth-social-scraper-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "profiles": ["realDonaldTrump"] }

# Run the Actor and wait for it to finish
run = client.actor("lofomachines/truth-social-scraper-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "profiles": [
    "realDonaldTrump"
  ]
}' |
apify call lofomachines/truth-social-scraper-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=lofomachines/truth-social-scraper-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bulk Truth Social Profile Scraper - Fast & Cheap",
        "description": "Extract posts, profiles, media and engagement metrics from any public Truth Social account. Fast, no login required, pay per result.",
        "version": "1.0",
        "x-build-id": "smJqz08sejkeD0cKc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/lofomachines~truth-social-scraper-api/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-lofomachines-truth-social-scraper-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/lofomachines~truth-social-scraper-api/runs": {
            "post": {
                "operationId": "runs-sync-lofomachines-truth-social-scraper-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/lofomachines~truth-social-scraper-api/run-sync": {
            "post": {
                "operationId": "run-sync-lofomachines-truth-social-scraper-api",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "profiles"
                ],
                "properties": {
                    "profiles": {
                        "title": "Profiles / usernames",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "One or more Truth Social profiles. You can paste a username (realDonaldTrump), a handle (@realDonaldTrump) or a full profile URL (https://truthsocial.com/@realDonaldTrump).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPosts": {
                        "title": "Number of posts per profile",
                        "minimum": 50,
                        "type": "integer",
                        "description": "Maximum number of posts to collect for each profile. Use a smaller number for a quick sample, or a larger one for a full history. Set 0 for no limit (collect everything available).",
                        "default": 50
                    },
                    "onlyPostsAfter": {
                        "title": "Only posts after this date (optional)",
                        "type": "string",
                        "description": "Optional. Collect only posts published on or after this date. Accepts a date like 2025-01-01 or a relative value like 7 days, 3 months, 1 year."
                    },
                    "includeReplies": {
                        "title": "Include replies to other users",
                        "type": "boolean",
                        "description": "Turn on to also collect the profile's replies to other users. Off by default, so you only get original posts.",
                        "default": false
                    },
                    "includeReposts": {
                        "title": "Include reposts (re-Truths)",
                        "type": "boolean",
                        "description": "Turn on to also collect content the profile reposted from other accounts.",
                        "default": true
                    },
                    "onlyWithMedia": {
                        "title": "Only posts with media",
                        "type": "boolean",
                        "description": "Turn on to keep only posts that contain an image, video or GIF.",
                        "default": false
                    },
                    "includeProfileDetails": {
                        "title": "Add full profile details to every post",
                        "type": "boolean",
                        "description": "Turn on to attach rich author information (bio, followers, verification, website and more) to each collected post.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
