Truth Social
GET /v1/truth-social/profile

Truth Social Profile API

Prominent public Truth Social profiles — isPrivate/bot/group, CP-F counts, avatar/banner. Flat 1 credit.

1 credit per request
TL;DR
Prominent public Truth Social profiles — isPrivate/bot/group, CP-F counts, avatar/banner. Flat 1 credit. The Truth Social Profile API (Truth Social) is a single authenticated GET request to /v1/truth-social/profile that responds with clean JSON and costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.

What is the Truth Social Profile API?

Pass a Truth Social @username or profile URL and get the public account as clean JSON. Canonical profile core: platform, id, username, url, displayName, bio, avatar, banner, followers, following, postCount, verified, createdAt. Each count carries followersIsApproximate / followingIsApproximate / postCountIsApproximate (CP-F). Also: bot/isPrivate/group, discoverable (nullable Mastodon field — null means Truth Social omitted it, not a mapping gap), location/website, ISO lastStatusAt. Mastodon extras live under raw (emojis[], fields[] with verifiedAt, chatsOnboarded, tvAccount). Twin keys (handle/acct/name/avatarStatic/headerStatic/locked) are omitted. Avatar/banner/media on static-assets-1.truthsocial.com are unsigned and do not expire — there is no mediaUrlsExpireAt. As of late 2025, Truth Social only lets you view public profiles/posts of prominent users (e.g. Trump, Vance) without authentication; most other accounts require auth and will 404 here. Flat 1 credit.

What you get

  • isPrivate / bot / group classification flags
  • followersIsApproximate / followingIsApproximate / postCountIsApproximate
  • raw.fields[] with verifiedAt for confirmed profile links
  • HTML-stripped bio + permanent avatar/banner URLs

Try it

Open in Playground

Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).

Parameters

Sign in to run live
curl "https://api.captapi.com/v1/truth-social/profile?url=https%3A%2F%2Ftruthsocial.com%2F%40realDonaldTrump" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

Edit the parameters and the code updates instantly. Switch languages and hit copy.

Example response

{
  "success": true,
  "data": {
    "platform": "truth_social",
    "id": "107780257626128497",
    "username": "realDonaldTrump",
    "url": "https://truthsocial.com/@realDonaldTrump",
    "displayName": "Donald J. Trump",
    "bio": "",
    "avatar": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
    "banner": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/headers/107/780/257/626/128/497/original/ba3b910ba387bf4e.jpeg",
    "verified": true,
    "followers": 12956933,
    "following": 69,
    "postCount": 35371,
    "followersIsApproximate": false,
    "followingIsApproximate": false,
    "postCountIsApproximate": false,
    "location": null,
    "website": "www.DonaldJTrump.com",
    "createdAt": "2022-02-11T16:16:57.705Z",
    "lastStatusAt": "2026-08-02T00:00:00.000Z",
    "bot": false,
    "isPrivate": false,
    "group": false,
    "discoverable": null,
    "acceptingMessages": false,
    "raw": {
      "emojis": [],
      "fields": [],
      "chatsOnboarded": true,
      "tvAccount": false
    }
  }
}

Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.

Response structure

A successful call returns success and a data object with the following fields:

Top-level fields

  • platformAlways "truth_social" on this endpoint.
  • idStable platform ID for the item.
  • usernameLocal username (canonical). Upstream acct matches on reachable public accounts.
  • urlCanonical URL of the item.
  • displayNameDisplay name of the account. Canonical across profile endpoints (prefer over name).
  • bioProfile bio. Canonical across profile endpoints (prefer over description on YouTube).
  • avatarAvatar / profile picture URL. Canonical across profile endpoints.
  • bannerBanner / cover image URL. Canonical across profile endpoints.
  • verifiedWhether the account is verified on this platform.
  • followersFollower count.
  • followingNumber of accounts followed.
  • postCountTotal posts/statuses/videos for the account. Canonical across profile endpoints (prefer over posts / videoCount / tweetCount).
  • followersIsApproximateCP-F on followers. Same ladder as Twitter/TikTok identity cards.
  • followingIsApproximateCP-F on following.
  • postCountIsApproximateCP-F on postCount.
  • locationProfile location string when Truth Social exposes one; null when empty.
  • websiteWebsite listed on the profile.
  • createdAtCreation date (ISO 8601).
  • lastStatusAtLast status day from Truth Social, normalized to ISO-8601 UTC midnight (e.g. 2026-08-02T00:00:00.000Z). Upstream often sends YYYY-MM-DD only.
  • botWhether Truth Social marks the account as a bot — filter before creator metrics.
  • isPrivateFollow-approval / locked account (upstream locked). Catalogue name shared with Instagram/Threads.
  • groupWhether this is a Truth Social group account (not a personal creator).
  • discoverableMastodon's nullable discoverable bit. null means Truth Social omitted the field (common on public figures) — not a Captapi mapping gap. false is an explicit no.
  • acceptingMessagesAccepting messages. Example: false.
  • rawRaw upstream payload for advanced use (fields may change). Prefer the normalized top-level fields when available.

Parameters

NameTypeRequiredDescription
urlstringYesTruth Social profile URL or @username. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh.

Using an AI agent? This endpoint is the MCP tool truth_social_profile via @captapi/mcp. Set it up →

How it works

  1. 1. Sign up — get 100 free credits, no card required.
  2. 2. Create a key from your dashboard.
  3. 3. Send one request to /v1/truth-social/profile and parse the JSON response.

Use cases

Public-Figure Enrichment

Pull stats and locked/bot/group flags for prominent accounts that Truth Social still exposes without login.

Verified-Link Capture

Read raw.fields[].verifiedAt for confirmed profile links when the account publishes them.

Auth-Gated Awareness

Expect 404 for non-prominent handles — Truth Social gates most profiles behind login.

Frequently asked questions

What does the Truth Social Profile API do?+

The Truth Social Profile API lets you fetch profile or page details and audience stats from a public Truth Social profile or page using one GET request to /v1/truth-social/profile. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Truth Social Profile API cost?+

Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.

Do I need a Truth Social API key or OAuth?+

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

Why was hasMore false next to author.postCount 36380?+

That was a pagination bug on user-posts: we only set nextCursor when the page filled min(limit, 40). Truth Social's statuses page is ~20 rows, so a default-limit 200 looked finished. Native now emits a max_id cursor on a full/20-row page, from the Mastodon Link header, or when author.postCount > totalReturned (a short page next to 36k posts is not the end). hasMore is true only when nextCursor is present. The extended path cannot page — then hasMore is true, nextCursor is null, and truncatedReason is single_page_only. postCount includes replies; the native feed excludes them, so a later empty page is the real end.

Is language yours or Truth Social's?+

Truth Social's (Mastodon auto-detect). We pass it through and set null on an empty body. We do not run our own classifier, so a short English sentence plus a URL tagged nl is upstream, not a Captapi bug. Do not filter a country dataset on this field.

Why is downvotes 0 on every row?+

When the key is present we pass the integer through — 0 stays 0, we do not collapse it with or. When Truth Social omits downvotes_count the field is null. A page of zeros means the key was present as 0; treat it as unverified if you need downvote analytics.

Why is discoverable null among populated booleans?+

Mastodon's discoverable is nullable. null means Truth Social omitted the field (typical on public figures). false is an explicit no. That is not the same bug as a missing mapped flag.

Do Truth Social media URLs expire?+

No. static-assets-1.truthsocial.com links carry no signature and no oe= parameter. mediaUrlsExpireAt is omitted on purpose — persist the URL. Instagram and TikTok CDN links are the ones that die.

Is the Truth Social Profile API suitable for production use?+

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.

More Truth Social APIs

Ready to use the Truth Social Profile API?

Sign up, grab your key, and make your first call in 60 seconds.

Truth Social Profile API | Captapi — Captapi