Truth Social Post API
One Truth — text, links[], card, reblog/quote chain, media.meta, externalVideoId. Flat 1 credit.
GET request to /v1/truth-social/post 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 Post API?
Pass a Truth Social post URL or numeric ID and get the public status as clean JSON (same mapper as user-posts rows): text with unbroken URLs, links[], full author{} (same _normalize_account as /profile), engagement {replies,reblogs,likes,downvotes}, card, media[] with meta/durationSeconds, externalVideoId when the clip is on Rumble, plus reblog/quote/inReplyTo chain fields, mentions[]/tags[], poll, visibility, spoilerText, sponsored, pinned when present. Session-only favourited/reblogged/muted/bookmarked are omitted. 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
- Post fields as clean structured JSON
- IDs, URLs, and titles where the platform exposes them
- Engagement or popularity signals when available
- Stable IDs for joining with other endpoints
Try it
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
curl "https://api.captapi.com/v1/truth-social/post?url=https%3A%2F%2Ftruthsocial.com%2F%40realDonaldTrump%2F116938579137506694" \
-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": "116938579137506694",
"url": "https://truthsocial.com/@realDonaldTrump/116938579137506694",
"text": "Tim Sheehy is GREAT. A Winner!!! President DJT",
"publishedAt": "2026-07-18T02:18:32.394Z",
"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": 12908903,
"following": 69,
"postCount": 35050,
"website": "www.DonaldJTrump.com",
"createdAt": "2022-02-11T16:16:57.705Z",
"lastStatusAt": "2026-07-18T00:00:00.000Z",
"fields": [],
"locked": false,
"isPrivate": false,
"bot": false,
"group": false,
"location": null
},
"engagement": {
"replies": 827,
"reblogs": 2586,
"likes": 8328,
"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": []
}
}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
platformAlways "truth_social" on this endpoint.idStable platform ID for the item.urlCanonical URL of the item.textPlain text from the status HTML with unbroken URLs (href preferred over span-broken visible text).publishedAtPublish date (ISO 8601) when the platform exposes an absolute timestamp.languageLanguage code from Truth Social/Mastodon auto-detect — unreliable on short posts. Not Captapi-detected.sensitiveWhether the content is flagged sensitive.linksAuthoritative http(s) URLs from <a href> attributes (deduped).
Author
The author object contains:
platformAlways "truth_social" on this endpoint.idStable platform ID for the item.usernameAccount username / handle.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).websiteWebsite listed on the profile.createdAtCreation date (ISO 8601).lastStatusAtAuthor's last status time as ISO-8601 UTC (date-only upstream → midnight Z).fieldsAuthor profile fields ({name, value, verifiedAt}) when present.lockedWhether the account is locked / follow-gated (Mastodon locked).isPrivateAuthor isPrivate (upstream locked) when the embedded account is rich.botAuthor bot flag when present.groupAuthor group flag, or post-level group when the status itself is a group post.locationLocation shown on the profile or item.
Engagement
The engagement object contains:
repliesNumber of replies.reblogsReblogs. Example: 2586.likesFavourites count (identical to upstream upvotes_count). Catalogue name — upvotes twin omitted.upvotesUpvote count.downvotesTruth Social downvotes_count (integer, often 0). Not null when upstream sends zero.
Media
Each item in media contains:
typeContent type of the item.urlCanonical URL of the item.previewUrlMedia thumbnail URL, or null for Truth Social's missing.png placeholder.descriptionDescription text.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Truth Social post URL or post ID. 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. |
| cache | boolean | No | Set 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 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh.
How it works
- 1. Sign up — get 100 free credits, no card required.
- 2. Create a key from your dashboard.
- 3. Send one request to
/v1/truth-social/postand parse the JSON response.
Use cases
Single-Truth Lookup
Resolve a post URL/ID to text, links[], author, and engagement when still public.
Rumble Handoff
externalVideoId bridges into Captapi Rumble endpoints (SC has no Rumble).
Auth-Gated Awareness
Most non-prominent posts require auth and return 404 — same platform limit as profile.
Frequently asked questions
What does the Truth Social Post API do?+
The Truth Social Post API lets you fetch full metadata and key stats from a public Truth Social post using one GET request to /v1/truth-social/post. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Truth Social Post 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. 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 Post 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 Post API?
Sign up, grab your key, and make your first call in 60 seconds.