Truth Social User Posts API
Recent Truths — same post mapper as /post (links, card, reblog/quote, mentions).
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, including CP-F flags); 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; downvotes is null when Truth Social omits the key, 0 when it sends 0). language is Truth Social/Mastodon's auto-detect — not Captapi's — and is null on an empty body; short URL-heavy English can be tagged nl/fy upstream. Chain fields when present: reblog{}, quote{}/quoteId, inReplyToId/inReplyToAccountId/inReplyTo{}. Native timeline excludes replies; reblogs and quotes still appear. Pagination: native emits nextCursor (Mastodon max_id) when the statuses page is full (~20), the Link header has rel=next, or author.postCount > totalReturned — hasMore is true only with a cursor. The extended path cannot page: hasMore true, nextCursor null, truncatedReason=single_page_only when author.postCount > totalReturned. Media URLs on static-assets-1.truthsocial.com are unsigned (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 2 credits.
Request
- Base URL: https://api.captapi.com
- URL: https://api.captapi.com/v1/truth-social/user-posts
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Query parameters
Truth 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.
Max posts to return (default 20, max 80). Truth Social's statuses page is ~20 items — a full page returns nextCursor. On the extended path hasMore can be true with nextCursor null (truncatedReason=single_page_only). Flat 2 credits.
Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response.
Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.
Response
Success. The data object for this endpoint.
Changes
No recorded changes to this operation across all 3 revisions of this API.