# Truth Social Post Extractor (`solid-scraper/truth-social-post-extractor`) Actor

📣 Extract key posts from Truth Social fast with Truth Social Post Extractor. Get clean, organized data for research, monitoring, and marketing—no hassle. 🚀🔍 Ideal for analysts, agencies, and growth teams.

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

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Post Extractor 📊

**Truth Social Post Extractor** automatically scrapes user profile statuses from multiple Truth Social accounts, turning public posts into structured JSON you can analyze, import, or archive. If you’re looking to **extract posts from Truth Social**, **download Truth Social posts**, or build a **Truth Social data scraper** workflow for research and outreach, this tool is designed for exactly that—whether you’re a marketer, data analyst, or social media researcher—saving you hours of manual work.

***

### Why choose Truth Social Post Extractor?

| Feature | Benefit |
| --- | --- |
| ✅ **Multi account scraping via handles/URLs** | Lets you pull posts from several Truth Social profiles in one run |
| ✅ **Reliability with built-in retries** | Includes retry logic with backoff to improve successful extraction |
| ✅ **Proxy support for more consistent runs** | Uses built-in proxy support for more reliable scraping on different networks |
| ✅ **Structured JSON output** | Produces clean JSON fields that are easy to filter and load into tools |
| ✅ **Batch-friendly processing** | Handles arrays of inputs so you can scale a **Truth Social bulk post extraction** workflow |
| ✅ **Automated dataset saving** | Pushes scraped statuses to the dataset during the run for fewer “lost results” moments |

***

### Key features

- 📬 **Truth Social post text extraction**: Collects each account’s public statuses and attaches the `user_handle` to each record.
- 🧾 **Account flexibility (handles or profile URLs)**: Accepts Truth Social usernames or profile URLs as input.
- 🔄 **Retry logic for resilience**: Performs multiple attempts for the account lookup step with backoff to reduce failures.
- 🛡️ **Proxy support for consistent scraping**: Works with proxy configuration to improve reliability when requests are restricted.
- 🧠 **Keeps pagination until limit is reached**: Continues fetching statuses until `maximum_posts` is collected (or the source returns no more data).
- 💾 **Structured dataset output**: Each scraped status record is saved via `Actor.push_data` as JSON for easy downstream analysis.
- ⚙️ **Controls output volume per handle**: Uses a fixed `maximum_posts_per_handle` value inside the actor run for predictable dataset size.

***

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "handles": ["MTG", "RepMTG"]
}
```

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `handles` | Yes | List of Truth Social usernames or profile URLs to scrape. You can pass plain handles like `MTG` or full profile URLs. |

***

### Output

The actor saves each scraped status as JSON in the Apify dataset (pushed using `Actor.push_data(statuses)`).

#### Example JSON output

```json
[
  {
    "user_handle": "MTG",
    "id": "123456789012345678",
    "content": "Example status text ...",
    "created_at": "2026-01-01T00:00:00.000Z",
    "in_reply_to_id": null,
    "replies_count": 0,
    "reblogs_count": 0,
    "favourites_count": 0
  }
]
```

> Note: The actor pushes the `statuses` items returned by the Truth Social statuses endpoint and additionally sets `user_handle` for each item.

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `user_handle` | string | The normalized handle used for scraping (attached by the actor to every status). |
| `id` | string | Status identifier as returned by the source. |
| `content` | string | Text/content of the status as returned by the source. |
| `created_at` | string | Timestamp of when the status was created (format depends on returned data). |
| `in_reply_to_id` | string or null | Reply reference when applicable (as returned by the source). |
| `replies_count` | number | Number of replies for the status (as returned by the source). |
| `reblogs_count` | number | Number of reposts for the status (as returned by the source). |
| `favourites_count` | number | Number of favorites/likes for the status (as returned by the source). |
| `error_message` | string | Not pushed per item by the actor. Failures are logged, and handles with no statuses may yield no dataset items. |

You can export the dataset as JSON or CSV from the Apify Console after the run completes.

***

### How to use Truth Social Post Extractor (via Apify Console)

1. **Open Apify Console**: Go to [console.apify.com](https://console.apify.com) and sign in.
2. **Find the actor**: Search for **Truth Social Post Extractor** in the Actors marketplace.
3. **Go to the INPUT tab**: Paste your `handles` list into the input editor (plain usernames or profile URLs).
4. **Add your handles**: Example:
   ```json
   {
     "handles": ["MTG", "RepMTG"]
   }
   ```
5. **Review run settings**: The actor includes built-in proxy support for scraping reliability; if no proxy URL is available, it logs a warning and continues.
6. **Click Run**: Start the job and monitor logs to see which handles are being processed and how many statuses were pushed.
7. **Open the OUTPUT tab**: View the dataset created for your run.
8. **Export your results**: Export the dataset to JSON or CSV for analysis, archiving, or pipeline ingestion.

No coding required—get accurate results in minutes with this Truth Social post downloader workflow.

***

### Advanced features & SEO optimization

- 🧩 **Engineered for Truth Social post extraction workflows**: Built specifically for **Truth Social post extractor** use cases like bulk archiving and content analysis.
- 🔍 **Works with handles and profile URLs**: Helps you streamline **extract posts from Truth Social** even when your input list isn’t normalized.
- 🛡️ **Resilience-focused scraping**: Includes retry logic and proxy support for more reliable **Truth Social content scraper** runs.
- 💾 **Automation-friendly output**: The actor pushes structured status records directly to the dataset, making **Truth Social export posts** easy to move into your tooling.
- 🔄 **Pagination until you hit the target count**: Continues fetching until the actor’s per-handle maximum is reached, supporting **Truth Social bulk post extraction** at a predictable scale.

***

### Best use cases

- 📈 **Social media researchers**: Build a dataset of public statuses for timeline analysis, engagement trends, or topic modeling.
- 🧪 **Marketing analysts**: Pull consistent **Truth Social post text extraction** data to compare messaging across multiple accounts.
- 🎯 **Lead generation teams**: Use the **Truth Social API post extraction** output as part of a broader enrichment workflow.
- 🗂️ **Brand monitoring**: Archive public posts from known accounts and track changes over time with repeat runs.
- 🧾 **Content archiving & compliance reviews**: Maintain structured records of statuses for audits and internal documentation.
- 💻 **Data scientists & pipeline builders**: Feed exported JSON/CSV into ETL/analytics systems as part of a **Truth Social post import tool** process.
- 🧠 **Competitive intelligence**: Monitor how messaging evolves across accounts using **Truth Social data scraper** outputs.

***

### Technical specifications

- **Supported Input Formats**
  - ✅ `handles`: list of Truth Social usernames or profile URLs
- **Proxy Support**
  - ✅ Built-in proxy support for more reliable scraping
  - If a proxy URL is not available, the actor logs a warning and proceeds
- **Retry Mechanism**
  - ✅ Retries account lookup up to **3 attempts** with backoff
- **Dataset Structure**
  - ✅ JSON records pushed to the Apify dataset via `Actor.push_data(statuses)`
  - ✅ Each record includes `user_handle` added by the actor
- **Rate Limits & Performance**
  - ⚠️ Performance varies based on network conditions and source responsiveness
- **Limitations**
  - ❌ Only public statuses available through the source endpoints can be extracted
  - ⚠️ If the actor cannot fetch statuses for a handle, it logs a warning and that handle may yield no dataset items

***

### FAQ

#### Can I scrape multiple Truth Social accounts in one run?

✅ Yes. Provide a `handles` array with multiple usernames or profile URLs, and the actor will scrape each handle and push the results to the dataset.

#### What input formats are supported for handles?

✅ The `handles` field accepts either plain Truth Social usernames (like `MTG`) or profile URLs. If a username or URL includes extra parts (such as `@` or path segments), the actor normalizes it.

#### How many posts does it extract per account?

✅ The actor uses a per-handle maximum internally (`maximum_posts_per_handle = 10`). It fetches statuses until that count is reached (or the source returns no more data).

#### Does it include reply posts?

✅ The statuses request includes `exclude_replies`: `"true"` and `only_replies`: `"false"`, meaning replies are excluded.

#### Is proxy support available for more reliable scraping?

✅ Yes. The actor creates a proxy configuration and uses a proxy URL when available, with a warning in logs if no proxy is provided.

#### Where do the results go?

✅ The actor pushes scraped statuses into the Apify dataset using `Actor.push_data`. You can then export the dataset from the Apify Console to JSON or CSV.

#### Do I need to authenticate or provide login cookies?

✅ No. This actor is designed to scrape public web data exposed through the source endpoints.

#### Is this suitable for bulk post archiving?

✅ Yes. This **Truth Social bulk post extraction** approach is designed to process an array of accounts and save results directly to a dataset for repeatable runs.

***

### Support & feature requests

Want to improve your Truth Social post extractor workflow? Share your feedback and ideas! 💡

- 💡 **Feature Requests**: For example, you could ask for CSV export formatting improvements, expanded fields in the output, or additional filtering options for statuses.
- 📧 **Contact**: Email us at <dataforleads@gmail.com>.

Your feedback helps shape future updates to the Truth Social post downloader experience.

***

### Closing CTA / Final thoughts

*If you need a practical, dataset-driven way to download Truth Social posts at scale, **Truth Social Post Extractor** is a strong choice.*

It’s designed to make Truth Social content scraping straightforward, reliable, and ready for your next analysis or archiving workflow.

***

### Disclaimer

**This tool accesses publicly accessible sources only.** It does not access private profiles, authenticated data, or password-protected content.

You are responsible for complying with applicable laws and platform terms, including GDPR, CCPA, spam regulations, and any relevant rules for using scraped content. For data removal requests, contact <dataforleads@gmail.com>.

Please use this actor responsibly, ethically, and for legitimate purposes only.

# Actor input Schema

## `handles` (type: `array`):

List of Truth Social usernames or profile URLs to scrape.

## Actor input object example

```json
{
  "handles": [
    "MTG",
    "RepMTG"
  ]
}
```

# 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 = {
    "handles": [
        "MTG",
        "RepMTG"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/truth-social-post-extractor").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 = { "handles": [
        "MTG",
        "RepMTG",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("solid-scraper/truth-social-post-extractor").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 '{
  "handles": [
    "MTG",
    "RepMTG"
  ]
}' |
apify call solid-scraper/truth-social-post-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/KyfzZTdTBhQqBazg3/builds/Uu1cYjxPF7o4tRR8B/openapi.json
