Truth Social
GET /v1/truth-social/user-posts

Truth Social User Posts API

Recent Truths — same post mapper as /post (links, card, reblog/quote, mentions). 2 credits.

2 credits per request
TL;DR
Recent Truths — same post mapper as /post (links, card, reblog/quote, mentions). 2 credits. The Truth Social User Posts API (Truth Social) is a single authenticated GET request to /v1/truth-social/user-posts that responds with clean JSON and costs 2 credits. 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 User Posts API?

Pass a Truth Social @username or profile URL and get recent public posts as clean JSON — same status mapper as /post (not a slim sibling). Full author{} once at the top (same shape as /profile); each post keeps a slim author {id,username,displayName,avatar,verified}. text + links[] (unbroken URLs), card, media.meta, externalVideoId→Rumble, engagement {replies,reblogs,likes,downvotes} (likes is favourites/upvotes — identical upstream; downvotes keeps real zeros). Chain fields when present: reblog{}, quote{}/quoteId, inReplyToId/inReplyToAccountId/inReplyTo{} — so a boost is not mistaken for an original. Also mentions[]/tags[] (platform lists), poll{}, visibility, spoilerText, sponsored, pinned, group. Session-only flags (favourited/reblogged/muted/bookmarked) are omitted. Native timeline excludes replies (Truth Social exclude_replies); reblogs and quotes still appear. nextCursor/hasMore; max limit 80. 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 2 credits.

What you get

  • Same _normalize_post mapper as /post (links/card/media.meta/externalVideoId)
  • reblog / quote / inReplyTo chain fields for monitoring accuracy
  • Platform mentions[] + tags[] (not regex-from-text)
  • Cursor pagination; honest prominent-only access limit

Platform limits

Honest ceilings from the upstream platform surface — not Captapi bugs. Unexpected truncation here is usually the platform, not us.

  • Native timeline uses exclude_replies — reply posts are not listed (use /post for a specific reply URL).
  • Most non-prominent accounts require auth and 404.

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/user-posts?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": {
    "username": "realDonaldTrump",
    "author": {
      "platform": "truth_social",
      "id": "107780257626128497",
      "username": "realDonaldTrump",
      "acct": "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",
      "avatarStatic": "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",
      "headerStatic": "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,
      "location": null,
      "website": "www.DonaldJTrump.com",
      "createdAt": "2022-02-11T16:16:57.705Z",
      "lastStatusAt": "2026-08-02T00:00:00.000Z",
      "emojis": [],
      "fields": [],
      "bot": false,
      "locked": false,
      "isPrivate": false,
      "group": false,
      "discoverable": null,
      "acceptingMessages": false,
      "chatsOnboarded": true,
      "tvAccount": false
    },
    "totalReturned": 5,
    "nextCursor": "116936997445912023",
    "hasMore": true,
    "posts": [
      {
        "platform": "truth_social",
        "id": "116938579137506694",
        "url": "https://truthsocial.com/@realDonaldTrump/116938579137506694",
        "text": "Tim Sheehy is GREAT. A Winner!!! President DJT",
        "publishedAt": "2026-07-18T02:18:32.394Z",
        "author": {
          "id": "107780257626128497",
          "username": "realDonaldTrump",
          "displayName": "Donald J. Trump",
          "avatar": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
          "verified": true
        },
        "engagement": {
          "replies": 827,
          "reblogs": 2584,
          "likes": 8321,
          "upvotes": null,
          "downvotes": null
        },
        "language": "fy",
        "sensitive": false,
        "media": [
          {
            "type": "image",
            "url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/media_attachments/files/116/938/578/476/026/646/original/5b31cf2bfc5bfa22.jpg",
            "previewUrl": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/media_attachments/files/116/938/578/476/026/646/small/5b31cf2bfc5bfa22.jpg",
            "description": null
          }
        ],
        "links": []
      },
      {
        "platform": "truth_social",
        "id": "116938558790759096",
        "url": "https://truthsocial.com/@realDonaldTrump/116938558790759096",
        "text": "Ensuring the integrity of our elections is fundamental to preserving trust in American democracy. Following the 2020 presidential election, concerns about potential irregularities prompted detailed examinations of voting processes, data security, and registration practices across multiple states… Download documents and reports addressing key areas of election integrity, here: https://www. whitehouse.gov/election-integr ity/",
        "publishedAt": "2026-07-18T02:13:21.858Z",
        "author": {
          "id": "107780257626128497",
          "username": "realDonaldTrump",
          "displayName": "Donald J. Trump",
          "avatar": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
          "verified": true
        },
        "engagement": {
          "replies": 1388,
          "reblogs": 3509,
          "likes": 11543,
          "upvotes": null,
          "downvotes": null
        },
        "language": "en",
        "sensitive": false,
        "media": [
          {
            "type": "video",
            "url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/media_attachments/files/116/938/518/347/491/612/original/9bb622c2a7cb73f9.mp4",
            "previewUrl": null,
            "description": null
          }
        ],
        "links": []
      }
    ]
  }
}

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, cached, creditsUsed, and a data object with the following fields:

Top-level fields

  • usernameAccount username / handle.
  • totalReturnedNumber of items returned in this response.
  • nextCursorCursor to pass for the next page of results. May be null when the platform does not expose deep pagination (e.g. some Facebook Ad Library searches).
  • hasMoreWhether more results are available beyond this page. When true, pass nextCursor to fetch the next page.

Author

The author object contains:

  • platformAlways "truth_social" on this endpoint (posts[].platform).
  • idStable platform ID for the item.
  • usernameAccount username / handle.
  • acctFederation handle (may differ from username for remote 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.
  • avatarStaticAvatar static URL.
  • bannerBanner / cover image URL. Canonical across profile endpoints.
  • headerStaticHeader static URL.
  • 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).
  • locationLocation shown on the profile or item.
  • websiteWebsite listed on the profile.
  • createdAtCreation date (ISO 8601).
  • lastStatusAtTop-level author's last status time as ISO-8601 UTC (date-only upstream → midnight Z).
  • emojisCustom emoji shortcodes used in the display name ({shortcode, url, staticUrl}).
  • fieldsTop-level author profile fields ({name, value, verifiedAt}).
  • botTop-level author bot flag when present.
  • lockedWhether the account is locked / follow-gated (Mastodon locked).
  • isPrivateTop-level author isPrivate (upstream locked) when the account payload is rich.
  • groupAuthor.group on the top-level card; posts[].group when the status itself is a group post.
  • discoverableDiscoverable.
  • acceptingMessagesAccepting messages. Example: false.
  • chatsOnboardedChats onboarded. Example: true.
  • tvAccountTv account. Example: false.

Posts

Each item in posts contains:

  • platformAlways "truth_social" on this endpoint (posts[].platform).
  • idStable platform ID for the item.
  • urlCanonical URL of the item.
  • textPlain text from the status HTML. <a href> is replaced by the real URL so Truth Social span soft-wraps do not insert spaces into links.
  • publishedAtPublish date (ISO 8601) when the platform exposes an absolute timestamp.
  • authorTop-level: full profile card (same _normalize_account as /profile). On each post: slim {id, username, displayName, avatar, verified} only — stats live once at the top.
  • engagementEngagement metrics for the item.
  • languageLanguage code from Truth Social/Mastodon auto-detect — often wrong on short posts (e.g. fy for English). Not a Captapi detection.
  • sensitiveWhether the content is flagged sensitive.
  • mediaMedia attached to the item.
  • linksAuthoritative http(s) URLs from <a href> attributes (deduped). Prefer this over regex on text.

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.
limitintegerNoMax posts to return (default 20, max 80). Capped at 80 because Truth Social's statuses page is ~40 items — use nextCursor for more pages. Flat 2 credits per call. Response `source` is native or extended.
cursorstringNoPagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. Envelope includes cached + cachedAt on hits.

Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 2 credits. 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_user_posts 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/user-posts and parse the JSON response.

Use cases

Public-Figure Monitoring

Track posting cadence for prominent Truth Social accounts that remain public.

Link Extraction

Use links[] (and card.url) for real destinations — not span-broken text URLs.

Rumble Handoff

When externalVideoId is set, call Captapi Rumble video-details for streams and comments.

Auth-Gated Awareness

Most non-prominent handles require auth and 404 — not a general creator catalog.

Frequently asked questions

What does the Truth Social User Posts API do?+

The Truth Social User Posts API lets you list items in bulk with metadata from a public Truth Social post using one GET request to /v1/truth-social/user-posts. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the Truth Social User Posts API cost?+

Each successful call costs 2 credits. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. 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.

Is the Truth Social User Posts 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. Hits include cached + cachedAt. 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 User Posts API?

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