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

Truth Social Post Extractor extracts public Truth Social posts, profiles, engagement metrics, hashtags, media URLs, timestamps, and account details. Ideal for social media monitoring, trend analysis, audience research, brand tracking, competitor analysis, and data collection.

- **URL**: https://apify.com/scrapevanta/truth-social-post-extractor.md
- **Developed by:** [ScrapeVanta](https://apify.com/scrapevanta) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 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 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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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 Post Extractor ⚡

Getting consistent Truth Social post data from multiple accounts is harder than it should be—copy/paste won’t scale, and manual exports get messy fast. **Truth Social Post Extractor** scrapes user profile statuses from multiple Truth Social accounts so you can export structured Truth Social post data in one run. It’s ideal for a **Truth Social post extractor**, a **Truth Social data extraction tool**, or anyone looking to **export Truth Social posts**. Teams like social media analysts, marketers, and researchers use it to build post archives and start Truth Social post analytics without writing scraping code. In a single run, you can pull up to 10 posts per handle and get clean records into your Apify dataset quickly.

---

### See the Data: Sample Output

Here's a real record from a single run:

```json
{
  "id": "123456789012345678",
  "created_at": "2025-06-01T12:34:56.000Z",
  "content": "Excited for what’s next!",
  "visibility": "public",
  "url": "https://truthsocial.com/@MTG/123456789012345678",
  "user_handle": "MTG",
  "status": "success",
  "error_message": null
}
````

Below are the kinds of fields you can expect in the dataset output (plus the extra `user_handle` field the actor adds):

| Field | Type | What It Tells You |
|---|---|---|
| `id` | string | The unique identifier of the status, useful for de-duplicating posts across exports |
| `created_at` | string | When the post was created, letting you sort and filter by time windows |
| `content` | string | The post text content, ready for analysis, tagging, or sentiment workflows |
| `visibility` | string | The visibility setting, helping you understand how broadly a post may be distributed |
| `url` | string | A direct link to the post for verification or sharing in reports |
| `user_handle` | string | Which account the post belongs to, so you can group results by Truth Social username |
| `status` | string | Indicates whether the record is successful (or signals an error state) |
| `error_message` | string or null | Explains what went wrong when a record can’t be fetched, or is `null` when successful |
| `user_id` | string | The account identifier behind the post (handy when usernames change) |
| `replies_count` | number | Quick engagement context when you’re comparing posts by thread activity |
| `reposts_count` | number | Helps you quantify resharing behavior across the post archive |
| `favourites_count` | number | Another engagement signal for prioritizing posts for review |

Export your full dataset as JSON, CSV, or Excel from the Apify dashboard.

***

### Setting It Up

Drop this into your `input.json` and you're ready to go:

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

| Parameter | Required | What It Does |
|---|---:|---|
| `handles` | ✅ | A list of Truth Social usernames or profile URLs to scrape |
| ↳ items (string) | ✅ | Each item can be either a username or a profile URL; the actor normalizes it internally |

***

### What It Does

Truth Social Post Extractor scrapes Truth Social user profile statuses from multiple accounts and writes the results directly to your Apify dataset.

#### Bulk-extract posts for multiple handles

Feed in several usernames or profile URLs in `handles`, and the actor processes each handle in a single run. This makes it practical for building a Truth Social post archive across multiple accounts without manual downloading.

#### Pulls profile statuses with a consistent cap per handle

For each handle, the actor fetches profile statuses with a `maximum_posts_per_handle` value set in the run logic. This keeps results bounded and predictable for downstream analysis and reporting.

#### Clean, dataset-ready output records

Each scraped status is pushed to the dataset, and the actor also adds a `user_handle` field to each record so you can group results by account immediately. That means your Truth Social scraper output is integration-ready for exports and analysis.

#### Built-in proxy support for reliable scraping

The actor can create a proxy configuration and use a proxy URL when available. This helps improve reliability when scraping data from publicly available sources.

#### Includes retries and fallbacks for resilience

When looking up an account, the actor includes retry logic and back-off between attempts. If a handle can’t be resolved or statuses can’t be fetched, it logs what happened and continues.

Overall, Truth Social Post Extractor turns messy “collect posts from profiles” work into a structured dataset you can export and analyze fast.

***

### Why Truth Social Post Extractor?

There are plenty of ways to pull data from Truth Social — here’s why Truth Social Post Extractor stands out.

#### Output focused on post analysis

The actor extracts user profile statuses and delivers them as consistent JSON records you can directly use for Truth Social post analytics extractor workflows like filtering, tagging, and time-based reporting.

#### Straightforward input: usernames or profile URLs

You don’t have to learn a special format—just pass `handles` as usernames or profile URLs. This makes the Truth Social username to posts extractor workflow simple for analysts and marketers.

#### Built for resilience when profiles are inconsistent

Lookups include retries, and the run proceeds handle-by-handle even when some handles return no data. That means the Truth Social data extraction tool is less likely to fail entirely due to one problematic account.

***

### Real-World Use Cases

Here's how different teams put Truth Social Post Extractor to work:

**Social media analysts**\
They need a repeatable Truth Social content downloader process to build a post archive for weekly reporting. They run the actor on a set of target handles, export the dataset, and analyze engagement and themes without spending hours manually collecting content.

**Marketing teams**\
They’re tracking messaging changes across key accounts and want comparable datasets over time. They use the Truth Social post scraper output to compile structured exports for campaign dashboards and competitor monitoring.

**Freelance researchers**\
They get research briefs that require sourcing posts from specific public accounts under tight deadlines. They pass a list of Truth Social usernames or profile URLs into Truth Social data extraction, export results, and deliver cleaned datasets for client review.

**Developers and automation specialists**\
They want a reliable API alternative for building a post archive pipeline. They trigger Truth Social web scraper tool runs, pull dataset results programmatically, and feed the output into downstream processing for analytics or alerting.

**Community and trend monitoring**\
They’re watching how narratives evolve across multiple accounts and want snapshots that can be compared. By repeatedly running Truth Social post extraction software, they compile post datasets that support trend timelines and qualitative reviews.

***

### How to Run It

No code required. Here's how to get your first results in under 5 minutes:

1. **Open the actor on Apify** — go to [console.apify.com](https://console.apify.com) and find **Truth Social Post Extractor**.
2. **Enter your inputs** — fill in the `handles` field with one or more Truth Social usernames or profile URLs.
3. **Configure proxy settings (recommended)** — if your run needs higher reliability, enable proxy usage in the actor run configuration.
4. **Start the run** — launch the actor and watch the live logs as it processes each handle.
5. **Open the Dataset tab** — results are pushed as statuses are fetched for each account.
6. **Export your results** — download from the dataset tab as JSON, CSV, or Excel.
7. **Repeat for updates** — run again later to build time-based comparisons for your Truth Social post analytics extractor work.

The whole setup takes under 5 minutes — results start appearing within seconds of launch.

***

### Export & Integration Options

Once your data is collected, Truth Social Post Extractor fits directly into your existing workflow. You can download your dataset in common formats like JSON, CSV, or Excel from the Apify dataset tab.

For deeper automation, you can connect via Apify’s API access patterns, use webhooks for downstream actions when runs complete, and integrate with tools like Zapier or Make. You can also set up scheduled runs so the Truth Social post extractor updates your archive automatically without manual intervention.

***

### Pricing

Truth Social Post Extractor runs on Apify, which includes a **free tier** — no credit card needed to start. The free tier provides $5 platform credits on sign-up, which is typically enough for several real test runs.

For scaling up, Apify uses pay-as-you-go billing based on Actor compute units (CU). Apify also offers subscription plans for heavier workloads. Start free at [apify.com](https://apify.com) — scale up when you need to.

***

### Reliability & Limitations

| What We Handle | How |
|---|---|
| Rate limits / access issues | Retries and resilience logic for account lookup and status fetching |
| Proxy reliability support | Optional proxy configuration is used when available |
| Partial results | Results are pushed to the dataset per handle as they are fetched |
| Empty or missing data | If no statuses are returned for a handle, that handle is skipped with a log entry |
| Error handling | Failures during fetch are caught and logged so the run can continue |

Limitations: This actor scrapes publicly available data and is intended for publicly accessible Truth Social profiles. It cannot retrieve private or login-gated content, and results depend on what statuses are available for each account.

For enterprise-scale needs or custom configurations, reach out and we’ll help.

***

### Frequently Asked Questions

#### Is there a free plan?

Yes—Apify offers a free tier with usage credits so you can test Truth Social post extraction before scaling up.

#### Do I need to log in or create an account on Truth Social?

No. The actor is designed to work with publicly available sources for scraping Truth Social posts from user profiles.

#### How accurate is the extracted data?

The extracted content reflects what’s publicly available in the fetched status records. If a post isn’t returned by the underlying data source for a handle, it won’t appear in your dataset.

#### How many results can I get per run?

The actor uses a fixed `maximum_posts_per_handle` in its run logic (set to 10). It fetches up to that number of statuses for each handle you provide.

#### How fresh is the data?

Data freshness depends on when you run the actor. If you re-run later, you’ll get newly available statuses and can build an updated Truth Social post archive.

#### Is this legal? Does it comply with GDPR / CCPA?

The actor accesses **publicly available data**. Compliance with GDPR, CCPA, and any relevant platform rules is your responsibility when storing, processing, and using the exported dataset.

#### Can I export to Google Sheets or Excel?

Yes. You can download your dataset as JSON, CSV, or Excel from the Apify dashboard and then import it into Google Sheets or other tools.

#### Can I schedule this to run automatically?

Yes. You can schedule Apify actor runs on a recurring basis using Apify’s scheduling options, which is ideal for ongoing Truth Social post scraper workflows.

#### Can I access results via the API?

Yes. You can retrieve results programmatically using the Apify API, based on the dataset produced by the run.

#### What happens when the actor encounters an error?

If a handle fails during account lookup or status fetching, the actor logs the issue and continues with other handles. Successful statuses are still pushed to the dataset as they are collected.

***

### Get Help & Use Responsibly

Got a question about Truth Social Post Extractor or a feature you'd like added? Reach out at <dataforleads@gmail.com>. We welcome feedback and can help with practical improvements like supporting additional output needs for your Truth Social post extraction software workflow or refining how you structure your handle lists for bulk runs.

**This actor collects data only from publicly available data.** It does not access private accounts, login-gated pages, or password-protected content. You’re responsible for complying with GDPR, CCPA, and relevant platform terms when using and storing the exported data. For data-removal requests, contact <dataforleads@gmail.com>. Use responsibly, ethically, and only for lawful purposes.

# 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("scrapevanta/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("scrapevanta/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 scrapevanta/truth-social-post-extractor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Truth Social Post Extractor",
        "description": "Truth Social Post Extractor extracts public Truth Social posts, profiles, engagement metrics, hashtags, media URLs, timestamps, and account details. Ideal for social media monitoring, trend analysis, audience research, brand tracking, competitor analysis, and data collection.",
        "version": "1.0",
        "x-build-id": "iIYtzi1yUWoRiccdU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapevanta~truth-social-post-extractor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapevanta-truth-social-post-extractor",
                "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/scrapevanta~truth-social-post-extractor/runs": {
            "post": {
                "operationId": "runs-sync-scrapevanta-truth-social-post-extractor",
                "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/scrapevanta~truth-social-post-extractor/run-sync": {
            "post": {
                "operationId": "run-sync-scrapevanta-truth-social-post-extractor",
                "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": [
                    "handles"
                ],
                "properties": {
                    "handles": {
                        "title": "Handles / URLs",
                        "type": "array",
                        "description": "List of Truth Social usernames or profile URLs to scrape.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
