# Truth Social Profile Scraper (Cheap) (`data_api/truth-social-profile-scraper-cheap`) Actor

The Truth Social Account Details Scraper is a no-code data extraction tool for truthsocial.com.Truth Social profile and it returns clean, structured JSON: follower counts, following counts, total statuses (posts), account creation dates, bios, avatars, header images, and verification status.

- **URL**: https://apify.com/data\_api/truth-social-profile-scraper-cheap.md
- **Developed by:** [Data API](https://apify.com/data_api) (community)
- **Categories:** Social media, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.99 / 1,000 results

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

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

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

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

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

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

# README

## Truth Social Profile Scraper

![Truth Social Profile Scraper](cover.jpg)

Checking a Truth Social account by hand means opening the profile, reading off the follower number, copying the bio, and writing it all down before anything changes. Do that across a whole watchlist and the afternoon is gone. This scraper handles it for you. Hand it a list of usernames and it pulls each public profile straight from Truth Social into one clean row: follower and following counts, post totals, the bio, avatar and header links, verification and premium badges, and the date the account joined. One handle or a few hundred, same run.

### What you get

Every username you pass becomes one tidy row with the same shape, so results drop straight into a sheet or database without reshaping. Each profile comes back in two groups:

- **Identity** — `profileId`, `userName`, `accountHandle`, `displayName`, `bioText`, `profileUrl`, `avatarImage`, `headerImage`, `createdDate`
- **Stats and status** — `followersTotal`, `followingTotal`, `postsTotal`, `isVerified`, `isPremium`, `isLocked`, `isBot`

### Quick start

1. Click **Try for free** and open the input form.
2. Type one or more handles into **Truth Social usernames** (the `@` is optional).
3. Press **Start** and let the run finish.
4. Download the dataset as JSON, CSV, Excel, or XML.

![How it works](how-it-works.jpg)

### Use cases

- **Influence tracking** — log follower and following counts for political and media figures, then watch how they move week to week.
- **Social media analytics** — pair exact follower size with post counts to size up reach and posting cadence.
- **PR and brand monitoring** — catch the moment a client or competitor swaps a bio, avatar, or header on their profile.
- **Academic research** — build a profile dataset for studies on platform growth and audience networks.
- **Data engineering** — keep a clean table of account metadata to join against post or status datasets in your warehouse.
- **Verification checks** — confirm whether a handle is verified or premium before you cite or quote it.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `usernames` | array of strings | Yes | Truth Social handles to look up, with or without the leading `@`. Each handle is fetched on its own. Example: `["DonaldJTrumpJr", "mtgreenee", "DevinNunes"]`. |

#### Example input

```json
{
    "usernames": ["DonaldJTrumpJr", "mtgreenee", "DevinNunes"]
}
```

### Output

Each username you submit returns one item: the full public profile for that account. The example below shows every field the scraper writes.

#### Example output

```json
{
    "profileId": "107780257626128497",
    "userName": "DonaldJTrumpJr",
    "accountHandle": "DonaldJTrumpJr",
    "displayName": "Donald Trump Jr.",
    "isLocked": false,
    "isBot": false,
    "createdDate": "2022-02-11T16:16:57.705Z",
    "bioText": "<p>EVP of Development &amp; Acquisitions The Trump Organization</p>",
    "profileUrl": "https://truthsocial.com/@DonaldJTrumpJr",
    "avatarImage": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/original/avatar.jpeg",
    "headerImage": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/headers/original/header.jpeg",
    "followersTotal": 2864501,
    "followingTotal": 122,
    "postsTotal": 18540,
    "isVerified": true,
    "isPremium": true
}
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `profileId` | string | Internal numeric identifier Truth Social assigns to the account |
| `userName` | string | The account's @ handle as shown on the profile |
| `accountHandle` | string | Routing handle used by the platform, usually matching the username |
| `displayName` | string | Public name shown at the top of the profile |
| `isLocked` | boolean | True when the account is private and approves followers manually |
| `isBot` | boolean | True when the account is flagged as automated |
| `createdDate` | string | Timestamp for when the account first signed up |
| `bioText` | string | Profile description text, returned as HTML when one is set |
| `profileUrl` | string | Direct web link to the account's public profile |
| `avatarImage` | string | Link to the profile picture file |
| `headerImage` | string | Link to the cover banner image at the top of the profile |
| `followersTotal` | integer | How many accounts follow this profile |
| `followingTotal` | integer | How many accounts this profile follows |
| `postsTotal` | integer | Running count of statuses (truths) the account has published |
| `isVerified` | boolean | True when the account carries a verified badge |
| `isPremium` | boolean | True when the account holds a premium subscription |

### Tips for best results

- **Skip the `@`.** You can include it or leave it off — the scraper strips it either way, so a pasted handle works as-is.
- **Start with a few handles.** Run three or four first to confirm the fields match your pipeline before queuing a long watchlist.
- **Counts are point-in-time.** Follower and post totals reflect the moment of the run, so schedule repeat runs if you want a growth history.
- **Watch for skipped rows.** A handle that no longer exists or is misspelled is logged and skipped rather than failing the whole run, so check the log if a row is missing.

### How can I use Truth Social profile data?

**How can I use the Truth Social Profile Scraper to track follower growth?**
Feed it the handles you care about and run it on a schedule. Each run records `followersTotal`, `followingTotal`, and `postsTotal` for every account, so stacking runs over days or weeks gives you a clean growth curve without ever opening the app.

**How can I look up a Truth Social bio and verification status in bulk?**
Paste a list of usernames and every profile returns its `bioText`, `displayName`, `isVerified`, and `isPremium` in one dataset. That makes it quick to confirm which accounts are verified and to grab current bios for a directory or report.

**How can I export Truth Social profile data to a spreadsheet?**
After the run finishes, download the dataset as CSV or Excel. Because each username produces one flat row with the same columns, it opens cleanly in any spreadsheet tool or loads straight into a database for further analysis.

**How can I build a Truth Social account dataset for research?**
Collect the handles relevant to your study and run them through the scraper to capture profile metadata — join date, follower and following counts, post totals, and verification flags. Join that table against post or status data to map audiences and influence over time.

### Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Support

Questions, feature requests, or a field you'd like added? Reach out at <data.apify@proton.me> and we'll get back to you.

# Actor input Schema

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

List of Truth Social usernames to scrape account details for (e.g. realDonaldTrump, KariLake, TuckerCarlson).

## Actor input object example

```json
{
  "profiles": [
    "realDonaldTrump",
    "KariLake",
    "TuckerCarlson"
  ]
}
```

# API

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

## JavaScript example

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

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

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

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

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

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

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

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

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

```

## CLI example

```bash
echo '{
  "profiles": [
    "realDonaldTrump",
    "KariLake"
  ]
}' |
apify call data_api/truth-social-profile-scraper-cheap --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_api/truth-social-profile-scraper-cheap"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5hbmPQWRJEYc5gzID/builds/mqORn22uM9BCAjmOw/openapi.json
