# TruthSocial.com | $0.55💰 | Profile(s) | Posts (`memo23/truth-social-profile-scraper-with-posts`) Actor

💰$0.55 per 1,000 results. A powerful Apify actor for scraping Truth Social profiles and posts. This scraper extracts comprehensive data including user information, posts, engagement metrics, and more, with powerful monitoring capabilities to track updates over time.

- **URL**: https://apify.com/memo23/truth-social-profile-scraper-with-posts.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 65 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.55 / 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.

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

## Apify Truth Social Profile Scraper

**Unlock the Full Power of Truth Social Data** - The only scraper you need to track, analyze, and understand Truth Social activity with enterprise-grade reliability and precision. Whether you're monitoring competitors, tracking trends, or conducting research, our scraper delivers comprehensive, real-time insights while saving you time and resources.

*"From real-time monitoring to deep historical analysis, we turn Truth Social's public data into your competitive advantage."*

### 🔎 Search — find accounts & posts by keyword

Beyond scraping specific profiles, this actor can **search Truth Social by keyword**. Set a `searchQuery` (e.g. `trump`, `bitcoin`, `election`) and choose whether to return matching **accounts**, **posts**, or **both** via `searchType`. When a search query is set, the actor ignores Start URLs and returns the search results instead.

```json
{ "searchQuery": "bitcoin", "searchType": "both", "maxItems": 50 }
```

- **Accounts** results include username, display name, bio, follower/following/post counts, verified flag, avatar, and profile URL.
- **Posts** results include the post content, author, engagement counts (replies/reblogs/favourites), media attachments, and URL — each tagged with the `matchedQuery`.

### Overview

The Truth Social Scraper is your go-to tool for extracting data from Truth Social profiles. Ideal for monitoring updates, conducting sentiment analysis, and gathering research data, it tracks engagement metrics like followers and statuses. With easy setup and multiple export formats (JSON, CSV), it's perfect for researchers, analysts, and anyone looking to gather insights from Truth Social profiles.

### What does Truth Social Scraper do?

The Truth Social Scraper is a versatile tool that enables you to:

#### Comprehensive Data Collection

- Extract complete profile information and statistics
- Scrape historical posts and content
- Gather engagement metrics (likes, shares, comments)
- Analyze follower and following networks
- Download media attachments and shared content

#### Advanced Monitoring Capabilities

- **Real-time Updates**: Track new posts and profile changes as they happen
- **Efficient Processing**: Only processes new content in subsequent runs when monitoring mode is enabled
- **Change Detection**: Automatically identifies and reports new posts, profile updates, and engagement changes
- **Scheduled Monitoring**: Set up automated runs to keep your data current
- **Incremental Data Collection**: Build comprehensive datasets over time without duplicating efforts

#### Flexible Scraping Options

- **User Profiles**: Extract all posts from any public profile
- **Targeted Scraping**: Focus on specific posts using direct URLs
- **Custom Date Ranges**: Limit scraping to specific time periods
- **Selective Data Extraction**: Choose which data points to collect

This tool is ideal for:

- Market research and competitive analysis
- Social media monitoring and brand tracking
- Academic research and data analysis
- Content aggregation and trend analysis
- Building custom datasets for machine learning

### Features

- **Comprehensive Data Collection**: Extract detailed profile information, posts, and engagement metrics
- **Dual Scraping Modes**:
  - **User Profiles**: Scrape all posts from a user's profile
  - **Individual Posts**: Target specific posts using their direct URLs
- **Flexible Input**: Supports multiple input formats:
  - Full profile URLs (e.g., `https://truthsocial.com/@username`)
  - Usernames with or without @ (e.g., `@username` or `username`)
  - Direct post URLs (e.g., `https://truthsocial.com/@username/posts/12345`)
- **Monitoring Capabilities**: Track new posts and updates with monitoring mode
- **Efficient Processing**: Concurrent scraping with adjustable concurrency settings
- **Reliable Performance**: Built-in proxy support and request retries
- **Multiple Export Formats**: Download data in JSON or CSV for easy analysis

### How to Use

#### Scraping User Profiles

To scrape all posts from a user's profile:

1. **Set Up**: Ensure you have an Apify account and access to the Apify platform.
2. **Configure Input**: Provide the user's profile URL or username in any of these formats:
   - `https://truthsocial.com/@username`
   - `@username`
   - `username`
3. **Adjust Settings**: Configure options like max items, monitoring mode, and proxy settings as needed.
4. **Run the Scraper**: Execute the scraper on the Apify platform.
5. **Data Collection**: The scraper will output all available posts from the specified profile.

#### Scraping Individual Posts

To scrape specific posts:

1. **Set Up**: Ensure you have an Apify account and access to the Apify platform.
2. **Configure Input**: Provide the full post URL in this format:
   - `https://truthsocial.com/@username/posts/12345`
3. **Run the Scraper**: Execute the scraper on the Apify platform.
4. **Data Collection**: The scraper will output detailed data for the specified post.

### Input Configuration

Here's an example of how to set up the input for the Apify Truth Social Profile Scraper:

```json
{
    "startUrls": [
        {
            "url": "https://truthsocial.com/@realDonaldTrump"
        },
        {
            "url": "@realDonaldTrump"
        },
        {
            "url": "realDonaldTrump"
        },
        {
            "url": "https://truthsocial.com/@realDonaldTrump/posts/114723536228494118"
        }
    ],
    "maxItems": 1000,
    "monitoringMode": false,
    "maxConcurrency": 10,
    "minConcurrency": 1,
    "maxRequestRetries": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
}
```

#### Input Fields Explanation

- `startUrls`: Array of objects containing one of these formats:
  - Full profile URL: `{"url": "https://truthsocial.com/@username"}`
  - Username with @: `{"url": "@username"}`
  - Plain username: `{"url": "username"}`
  - Individual post URL: `{"url": "https://truthsocial.com/@username/posts/12345"}`
- `maxItems`: Maximum number of items to scrape (default: 1000).
- `postIds`: Array of plain numeric status IDs to fetch directly — no URLs needed (e.g. `["114723536228494118"]`). Works alongside or instead of `startUrls`.
- `sinceId`: Only return posts strictly newer than this status ID — ideal for incremental pipelines that remember the last post they processed.
- `useLastPostId`: Auto-incremental mode (default: false). The actor remembers the newest post ID **per profile** (stored per account ID in your own key-value store `truth-social-last-post-ids`), so alternating runs across different accounts never cross-contaminate. An explicit `sinceId` overrides the stored value.
- `onlyMedia`: Keep only posts that carry at least one image or video attachment (default: false).
- `monitoringMode`: When enabled, only scrapes new posts compared to previous runs (default: false).
- `maxConcurrency`: Maximum number of pages processed simultaneously (default: 10).
- `minConcurrency`: Minimum number of pages processed simultaneously (default: 1).
- `maxRequestRetries`: Number of retries for failed requests (default: 100).
- `proxyConfiguration`: Proxy settings for enhanced scraping reliability.

### Monitoring Mode

When `monitoringMode` is enabled, the scraper will only collect new posts that haven't been seen in previous runs. This is useful for:

- Tracking new content from specific profiles over time
- Building a historical archive of posts
- Monitoring accounts for new activity without duplicating data

#### How Monitoring Mode Works

1. The scraper maintains a record of previously scraped post IDs
2. On subsequent runs with `monitoringMode: true`, it checks each post against this record
3. Only new posts (those not in the record) are processed and added to the output
4. The record is updated with any new post IDs found

### Output Structure

The scraper provides comprehensive information about the Truth Social profile and posts. The output structure will be documented here in a future update.

```json
{
    "id": "114723536228494118",
    "created_at": "2025-06-21T21:43:59.812Z",
    "in_reply_to_id": null,
    "quote_id": null,
    "in_reply_to_account_id": null,
    "sensitive": false,
    "spoiler_text": "",
    "visibility": "public",
    "language": "en",
    "uri": "https://truthsocial.com/@realDonaldTrump/114723536228494118",
    "url": "https://truthsocial.com/@realDonaldTrump/114723536228494118",
    "content": "<p>Thank you President Trump! </p><p>“Belarus opposition leader Siarhei Tsikhanouski freed from jail after rare visit by top US envoy” <a href=\"https://news.sky.com/story/belarus-opposition-leader-siarhei-tsikhanouski-freed-from-jail-after-rare-visit-by-top-us-envoy-13386817\" rel=\"nofollow noopener noreferrer\" target=\"_blank\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">news.sky.com/story/belarus-opp</span><span class=\"invisible\">osition-leader-siarhei-tsikhanouski-freed-from-jail-after-rare-visit-by-top-us-envoy-13386817</span></a></p>",
    "account": {
        "id": "107780257626128497",
        "username": "realDonaldTrump",
        "acct": "realDonaldTrump",
        "display_name": "Donald J. Trump",
        "locked": false,
        "bot": false,
        "discoverable": false,
        "group": false,
        "created_at": "2022-02-11T16:16:57.705Z",
        "note": "<p></p>",
        "url": "https://truthsocial.com/@realDonaldTrump",
        "avatar": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
        "avatar_static": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
        "header": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/headers/107/780/257/626/128/497/original/ba3b910ba387bf4e.jpeg",
        "header_static": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/headers/107/780/257/626/128/497/original/ba3b910ba387bf4e.jpeg",
        "followers_count": 10066106,
        "following_count": 72,
        "statuses_count": 27340,
        "last_status_at": "2025-06-22",
        "verified": true,
        "location": "",
        "website": "www.DonaldJTrump.com",
        "unauth_visibility": true,
        "chats_onboarded": true,
        "feeds_onboarded": true,
        "accepting_messages": false,
        "show_nonmember_group_statuses": false,
        "emojis": [],
        "fields": [],
        "tv_onboarded": false,
        "tv_account": false,
        "premium": false
    },
    "media_attachments": [],
    "mentions": [],
    "tags": [],
    "card": {
        "id": null,
        "url": "https://news.sky.com/story/belarus-opposition-leader-siarhei-tsikhanouski-freed-from-jail-after-rare-visit-by-top-us-envoy-13386817",
        "title": "Belarus opposition leader Siarhei Tsikhanouski freed from jail after rare visit by top US envoy",
        "description": "Mr Tsikhanouski was arrested after he announced he would run for the presidency against Alexander Lukashenko in the 2020 election. As he was detained and subsequently sentenced to 18 years in prison, his wife Sviatlana Tsikhanouskaya ran in his place and took over the opposition.",
        "type": "link",
        "author_name": "",
        "author_url": "",
        "provider_name": "news.sky.com",
        "provider_url": "",
        "html": "",
        "width": 800,
        "height": 450,
        "image": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/cache/preview_cards/images/055/456/142/original/929f249e9ab8aea9.jpg",
        "embed_url": "",
        "blurhash": "UHH_up0LW8E200-:x_E1%K?cD%NG?vxai^%M",
        "links": null,
        "group": null
    },
    "group": null,
    "quote": null,
    "in_reply_to": null,
    "reblog": null,
    "sponsored": false,
    "replies_count": 560,
    "reblogs_count": 3601,
    "favourites_count": 17514,
    "reaction": null,
    "upvotes_count": 17514,
    "downvotes_count": 0,
    "favourited": false,
    "reblogged": false,
    "muted": false,
    "pinned": false,
    "bookmarked": false,
    "poll": null,
    "emojis": [],
    "votable": false
}
```

***

### Output Fields Explanation

#### Post Information

- **`id`**: The unique identifier for the post (e.g., "114723536228494118").
- **`created_at`**: The ISO 8601 timestamp when the post was created (e.g., "2025-06-21T21:43:59.812Z").
- **`in_reply_to_id`**: The ID of the post this is replying to, if any (null for original posts).
- **`quote_id`**: The ID of the quoted post, if this is a quote post (null if not quoting).
- **`in_reply_to_account_id`**: The account ID this post is replying to, if any (null for original posts).
- **`sensitive`**: Boolean indicating if the post is marked as containing sensitive content.
- **`spoiler_text`**: Warning text that should be shown before the post content (empty string if none).
- **`visibility`**: The visibility of the post (e.g., "public", "unlisted", "private", "direct").
- **`language`**: The detected language of the post content (e.g., "en" for English).
- **`uri`**: The ActivityPub URI for the post (e.g., "https://truthsocial.com/@realDonaldTrump/114723536228494118").
- **`url`**: The web URL for viewing the post in a browser.
- **`content`**: The HTML-formatted content of the post, including any embedded links and formatting.

#### Account Information

- **`account`**: Object containing information about the post's author:
  - **`id`**: The unique identifier for the account.
  - **`username`**: The account's username without the @ symbol (e.g., "realDonaldTrump").
  - **`acct`**: The account's username with domain if applicable.
  - **`display_name`**: The account's display name (e.g., "Donald J. Trump").
  - **`locked`**: Boolean indicating if the account is locked (requires approval to follow).
  - **`bot`**: Boolean indicating if the account is a bot.
  - **`discoverable`**: Boolean indicating if the account is included in directory.
  - **`group`**: Boolean indicating if the account is a group account.
  - **`created_at`**: When the account was created (ISO 8601 timestamp).
  - **`note`**: The account's bio or profile information in HTML format.
  - **`url`**: The web URL for the account's profile.
  - **`avatar`**: URL of the account's avatar image.
  - **`avatar_static`**: URL of a static version of the avatar.
  - **`header`**: URL of the account's header image.
  - **`header_static`**: URL of a static version of the header.
  - **`followers_count`**: Number of accounts following this account.
  - **`following_count`**: Number of accounts this account is following.
  - **`statuses_count`**: Number of posts the account has made.
  - **`last_status_at`**: The date of the account's most recent post (YYYY-MM-DD).
  - **`verified`**: Boolean indicating if the account is verified.
  - **`location`**: The account's location (empty string if not specified).
  - **`website`**: The account's website URL.
  - **`emojis`**: Array of custom emojis used in the account's profile (empty if none).
  - **`fields`**: Array of profile metadata fields (empty if none).

#### Media and Attachments

- **`media_attachments`**: Array of media objects (photos, videos, etc.) attached to the post (empty if none).
- **`mentions`**: Array of accounts mentioned in the post (empty if none).
- **`tags`**: Array of hashtags used in the post (empty if none).
- **`card`**: Object containing rich preview card information for links in the post, including:
  - **`url`**: The URL of the linked page.
  - **`title`**: The title of the linked page.
  - **`description`**: A description of the linked page.
  - **`type`**: The type of the card (e.g., "link").
  - **`author_name`**: The author of the linked content (empty if none).
  - **`provider_name`**: The provider of the linked content.
  - **`image`**: URL of the preview image for the link.
  - **`width`** and **`height`**: Dimensions of the preview image.

#### Engagement Metrics

- **`replies_count`**: Number of replies to the post.
- **`reblogs_count`**: Number of times the post has been reblogged/boosted.
- **`favourites_count`**: Number of favorites/likes the post has received.
- **`upvotes_count`**: Number of upvotes the post has received.
- **`downvotes_count`**: Number of downvotes the post has received.

#### User Interaction Status

- **`favourited`**: Boolean indicating if the authenticated user has favorited this post.
- **`reblogged`**: Boolean indicating if the authenticated user has reblogged this post.
- **`muted`**: Boolean indicating if notifications from this post have been muted.
- **`pinned`**: Boolean indicating if this post is pinned to the profile.
- **`bookmarked`**: Boolean indicating if the authenticated user has bookmarked this post.

#### Additional Metadata

- **`poll`**: Object containing poll information if the post includes a poll (null if none).
- **`emojis`**: Array of custom emojis used in the post (empty if none).
- **`votable`**: Boolean indicating if the post can be voted on (for polls).
- **`group`**: Information about the group this post belongs to (null if not in a group).
- **`quote`**: The quoted post if this is a quote post (null if not quoting).
- **`in_reply_to`**: The post being replied to (null if not a reply).
- **`reblog`**: The original post if this is a reblog (null if original content).
- **`sponsored`**: Boolean indicating if this is a sponsored/promoted post.

### Explore More Scrapers

If you found this Apify Truth Social Profile Scraper useful, be sure to check out our other powerful scrapers and actors at [memo23's Apify profile](https://apify.com/memo23). We offer a wide range of tools to enhance your web scraping and automation needs across various platforms and use cases.

### Support

- For issues or feature requests, please use the [Issues](https://console.apify.com/actors/IWIOv7oeNxfcjTnX5/issues) section of this actor.
- If you need customization or have questions, feel free to contact the author:
  - Author's website: <https://muhamed-didovic.github.io/>
  - Email: <muhamed.didovic@gmail.com>

### Additional Services

- Request customization or whole dataset: <muhamed.didovic@gmail.com>
- If you need anything else scraped, or this actor customized, email: <muhamed.didovic@gmail.com>
- For API services of this scraper (no Apify fee, just usage fee for the API), contact: <muhamed.didovic@gmail.com>
- Email: muhamed.didovic@gmail.com

# Actor input Schema

## `searchQuery` (type: `string`):

Free-text keyword to search Truth Social for — e.g. `trump`, `bitcoin`, `election`. Leave empty to scrape profile/post URLs instead.

## `searchType` (type: `string`):

In search mode, choose whether to return matching accounts, posts, or both.

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

URLs to start with. Supports profile URLs such as `https://www.truthsocial.com/realDonaldTrump/` and direct post URLs (`.../posts/123...`). Optional when <b>Post IDs</b> or <b>Search query</b> is set.

## `postIds` (type: `array`):

Fetch these exact posts by their numeric status ID — no URL needed. Works alongside or instead of Start URLs.

## `sinceId` (type: `string`):

Skip everything at or below this status ID — ideal for incremental pipelines that remember the last post they processed.

## `useLastPostId` (type: `boolean`):

Remembers the newest post ID per profile (stored per account, in your own key-value store) and scrapes only newer posts on the next run. Safe to alternate runs across different accounts. An explicit <b>Only posts newer than ID</b> overrides the stored value.

## `onlyMedia` (type: `boolean`):

Keep only posts that carry at least one image or video attachment.

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

Maximum number of items that will be scraped.

## `date` (type: `string`):

Scrape posts from this date up to today. Format: YYYY-MM-DD,  e.g., 2025-02-20

## `contentType` (type: `string`):

What to scrape per profile. 'posts' (default) keeps existing behavior. 'profile\_details' returns one normalized account record per profile and counts as 1 against maxItems. 'replies' and 'posts\_and\_replies' include reply statuses.

## `includeMuted` (type: `boolean`):

If checked, statuses from accounts muted by the API caller are included (passes with\_muted=true to Truth Social). Default true matches previous behavior.

## `flattenOutput` (type: `boolean`):

If checked, posts/replies are returned in a curated camelCase shape (input, id, type, accountId, username, createdAt, inReplyToId, content, mediaAttachments, repliesCount, etc.) instead of the raw Truth Social API JSON. Default false keeps the existing raw output for backwards compatibility.

## `monitoringMode` (type: `boolean`):

If checked, it will only scrape newly posts compared to what has been scraped in previous runs. Please turn on or check 'Include posts' setting above in case you want this feature.

## `maxConcurrency` (type: `integer`):

Maximum number of pages that can be processed at the same time.

## `minConcurrency` (type: `integer`):

Minimum number of pages that will be processed at the same time.

## `maxRequestRetries` (type: `integer`):

Number of times the crawler will retry a failed request before giving up.

## `proxy` (type: `object`):

Leave empty — the actor already routes all traffic through its own built-in residential proxy at no extra cost to you. Only set this if you want to use your own proxies.

## Actor input object example

```json
{
  "searchType": "both",
  "startUrls": [
    "https://www.truthsocial.com/realDonaldTrump/"
  ],
  "useLastPostId": false,
  "onlyMedia": false,
  "maxItems": 1000,
  "contentType": "posts",
  "includeMuted": true,
  "flattenOutput": false,
  "monitoringMode": false,
  "maxConcurrency": 10,
  "minConcurrency": 1,
  "maxRequestRetries": 100
}
```

# 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": [
        "https://www.truthsocial.com/realDonaldTrump/"
    ]
};

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

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

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/IWIOv7oeNxfcjTnX5/builds/DVfRihUiOycf5AvZW/openapi.json
