# Truth Social Profiles & Posts Scraper (`fetch_cat/truth-social-profile-posts-scraper`) Actor

Extract public Truth Social profiles, posts, replies, media, and engagement data for monitoring and research.

- **URL**: https://apify.com/fetch\_cat/truth-social-profile-posts-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Social media, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.60 / 1,000 truth social records

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 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.

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 Profiles & Posts Scraper

Export public Truth Social profiles and posts as structured JSON, CSV, Excel, XML, or RSS data. Use usernames or public profile and status URLs to collect identity, biography, audience, content, media, and engagement details without logging in.

This Actor is designed for journalists, political-media monitors, OSINT analysts, researchers, and reputation teams that need repeatable public-source records rather than manual screenshots.

### Ready-to-run examples

- [Collect one Truth Social profile](https://apify.com/fetch_cat/truth-social-profile-posts-scraper/examples/collect-one-truth-social-profile) — verified with 10 items.
- [Collect Truth Social posts with replies and reposts](https://apify.com/fetch_cat/truth-social-profile-posts-scraper/examples/collect-truth-social-posts-with-replies-reposts) — verified with 25 items.
- [Export a small Truth Social posts sample](https://apify.com/fetch_cat/truth-social-profile-posts-scraper/examples/export-small-truth-social-posts-sample) — verified with 5 items.

### Example input

```json
{
  "startUrls": [{ "url": "https://truthsocial.com/@realDonaldTrump" }],
  "maxItems": 10
}
````

### Example output

```json
{
  "recordType": "profile",
  "recordId": "107780257626128497",
  "username": "realDonaldTrump",
  "displayName": "Donald J. Trump",
  "url": "https://truthsocial.com/@realDonaldTrump",
  "followersCount": 12900000,
  "followingCount": 69,
  "sourceUrl": "https://truthsocial.com/@realDonaldTrump",
  "scrapedAt": "2026-07-10T14:00:00.000Z"
}
```

### What data can I export?

Profile records can include:

- Stable account ID, username, display name, and canonical profile URL
- Biography, avatar, header image, website links, and verification indicators
- Follower, following, and public post counts
- Join date and collection timestamp

Post records can include:

- Stable post and conversation IDs, canonical URL, text, HTML, language, and content warning
- Publication time, reply relationships, quote/reblog context, and author identity
- Reply, reblog, favorite, and quote engagement counts
- Mentions, hashtags, links, polls, media attachments, and link cards
- Source URL, input provenance, pagination cursor, and collection diagnostics

Fields that are unavailable on the public page are omitted rather than guessed.

### Who is it for?

Journalists, political-media monitors, OSINT analysts, academic researchers, archivists, and reputation teams can use the Actor to turn public Truth Social content into repeatable datasets.

### Use cases

- **Political-media monitoring:** track public statements and engagement over time.
- **Journalism:** collect source material with stable IDs, URLs, and timestamps.
- **OSINT research:** build reproducible datasets from public profiles and posts.
- **Reputation research:** review public messaging, audience size, and engagement.
- **Archiving:** export structured records for analysis and audit workflows.

### Input settings

| Field | Type | Description |
| --- | --- | --- |
| `startUrls` | array | Public Truth Social profile or status URLs. |
| `includeReplies` | boolean | Include public replies from profile timelines when available. |
| `includeReblogs` | boolean | Include reposted Truths from profile timelines when available. |
| `maxItems` | integer | Maximum number of profile and post records to save. |

The first run is prefilled with one public profile and a low result limit so you can verify the output quickly.

### Verified public examples

- [Collect one Truth Social profile](https://apify.com/fetch_cat/truth-social-profile-posts-scraper/examples/collect-one-truth-social-profile) — verified with 10 items.
- [Collect Truth Social posts with replies and reposts](https://apify.com/fetch_cat/truth-social-profile-posts-scraper/examples/collect-truth-social-posts-with-replies-reposts) — verified with 25 items.
- [Export a small Truth Social posts sample](https://apify.com/fetch_cat/truth-social-profile-posts-scraper/examples/export-small-truth-social-posts-sample) — verified with 5 items.

### Pricing

The Actor uses pay-per-event pricing:

- **Run start:** $0.40 per run.
- **Truth Social record tiers:** Free $0.014572, Bronze $0.012671, Silver $0.0098834, Gold $0.0076026, Platinum $0.0050684, Diamond $0.0035479 per saved record.

You are charged only for records saved to the dataset. Use `maxItems` to place a hard ceiling on output volume. Platform compute and proxy costs may also apply according to your Apify plan.

### Tips for reliable runs

- Start with one public profile and a small `maxItems` value.
- Use canonical `truthsocial.com/@username` or public status URLs.
- Avoid duplicate URLs; duplicate account and post IDs are deduplicated within a run.
- Schedule repeated runs with the same input to create a monitoring feed.
- Keep source URLs and stable IDs when joining results across runs.

### Legality, limits, and responsible use

This Actor accesses public Truth Social pages without user credentials. Public availability can change, and deleted, private, suspended, or age-restricted content cannot be collected. A run fails explicitly when the website returns a challenge or error page; it does not report a blocked page as a successful empty result.

Use the data lawfully and follow applicable privacy, copyright, platform, and records-retention requirements. Do not use the Actor to harass individuals or attempt to access private content.

### API usage

Replace `APIFY_TOKEN` with your Apify API token.

#### JavaScript

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/truth-social-profile-posts-scraper').call({
  startUrls: [{ url: 'https://truthsocial.com/@realDonaldTrump' }],
  maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('APIFY_TOKEN')
run = client.actor('fetch_cat/truth-social-profile-posts-scraper').call(run_input={
    'startUrls': [{'url': 'https://truthsocial.com/@realDonaldTrump'}],
    'maxItems': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~truth-social-profile-posts-scraper/runs?token=APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://truthsocial.com/@realDonaldTrump"}],"maxItems":10}'
```

### MCP integration and AI agents

Connect the Actor to an MCP-compatible client through the Apify MCP server:

```text
https://mcp.apify.com?tools=fetch_cat/truth-social-profile-posts-scraper
```

Add it with the MCP CLI:

```bash
claude mcp add --transport http apify-truth-social \
  'https://mcp.apify.com?tools=fetch_cat/truth-social-profile-posts-scraper'
```

Or add this server configuration to your MCP client:

```json
{
  "mcpServers": {
    "apify-truth-social": {
      "url": "https://mcp.apify.com?tools=fetch_cat/truth-social-profile-posts-scraper"
    }
  }
}
```

Example prompts:

- "Collect the latest public posts from these Truth Social profiles."
- "Export this public Truth Social profile and summarize its engagement."
- "Run a small monitoring sample and return the dataset URL."

An agent can run the scraper, wait for completion, and inspect the resulting dataset as part of a monitoring or research workflow.

### Related Actors

- [X Profile & Tweets Scraper](https://apify.com/fetch_cat/x-profile-tweets-scraper)
- [Threads Profile & Posts Scraper](https://apify.com/fetch_cat/threads-profile-posts-scraper)
- [Reddit Scraper](https://apify.com/fetch_cat/reddit-scraper)

### FAQ

#### Does this require a Truth Social login?

No. It collects only public profile and post data and does not ask for cookies, passwords, or private account credentials.

#### Can I export CSV or Excel?

Yes. After a run, open the dataset and choose JSON, CSV, Excel, XML, or RSS export.

#### Why did a run fail instead of returning zero items?

The Actor distinguishes genuine empty results from access challenges and upstream errors. It fails with a clear message when the target content could not be verified, preventing misleading empty datasets.

#### Can I schedule monitoring runs?

Yes. Use Apify schedules and keep the stable IDs and timestamps to compare records across runs.

### Support

If a valid public URL fails, open an issue from the Actor page and include:

- The run ID
- Your sanitized input JSON
- The expected output
- The actual output or error message

Do not include passwords, session cookies, or private data.

# Actor input Schema

## `startUrls` (type: `array`):

Public Truth Social profile URLs such as https://truthsocial.com/@realDonaldTrump or individual post/status URLs.

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

Include public reply posts where Truth Social exposes them in the profile timeline.

## `includeReblogs` (type: `boolean`):

Include public reposted Truths from the profile timeline.

## `maxItems` (type: `integer`):

Maximum number of public Truth Social profile and post records to save.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://truthsocial.com/@realDonaldTrump"
    }
  ],
  "includeReplies": true,
  "includeReblogs": true,
  "maxItems": 10
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://truthsocial.com/@realDonaldTrump"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/truth-social-profile-posts-scraper").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 = { "startUrls": [{ "url": "https://truthsocial.com/@realDonaldTrump" }] }

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/truth-social-profile-posts-scraper").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 '{
  "startUrls": [
    {
      "url": "https://truthsocial.com/@realDonaldTrump"
    }
  ]
}' |
apify call fetch_cat/truth-social-profile-posts-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Truth Social Profiles & Posts Scraper",
        "description": "Extract public Truth Social profiles, posts, replies, media, and engagement data for monitoring and research.",
        "version": "0.1",
        "x-build-id": "CZvaoWF1cY3h7YaD8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/fetch_cat~truth-social-profile-posts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-fetch_cat-truth-social-profile-posts-scraper",
                "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/fetch_cat~truth-social-profile-posts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-fetch_cat-truth-social-profile-posts-scraper",
                "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/fetch_cat~truth-social-profile-posts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-fetch_cat-truth-social-profile-posts-scraper",
                "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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Truth Social profile or status URLs",
                        "type": "array",
                        "description": "Public Truth Social profile URLs such as https://truthsocial.com/@realDonaldTrump or individual post/status URLs.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "includeReplies": {
                        "title": "Include replies",
                        "type": "boolean",
                        "description": "Include public reply posts where Truth Social exposes them in the profile timeline.",
                        "default": true
                    },
                    "includeReblogs": {
                        "title": "Include reblogs",
                        "type": "boolean",
                        "description": "Include public reposted Truths from the profile timeline.",
                        "default": true
                    },
                    "maxItems": {
                        "title": "Maximum records",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of public Truth Social profile and post records to save.",
                        "default": 10
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
