How to get Truth Social user posts
GET request to /v1/truth-social/user-posts with your input. You get clean JSON back in seconds for 2 credits per call — no OAuth, scraping or platform SDKs. Recent Truths — same post mapper as /post (links, card, reblog/quote, mentions). 2 credits.How to get Truth Social user posts (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the Truth Social User Posts API
Send an authenticated GET request to /v1/truth-social/user-posts with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
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_..."What the response looks like
{
"success": true,
"data": {
"username": "realDonaldTrump",
"author": {
"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
}
},
"requested": 20,
"totalReturned": 2,
"nextCursor": "116936997445912023",
"hasMore": true,
"truncatedReason": null,
"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 (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | 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. |
| limit | integer | No | 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. |
| cursor | string | No | Pagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response. |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. |
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. 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 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. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to get Truth Social user posts?
Start free with 100 credits — no credit card required.
Get your free API key