---
title: "Truth Social Post API"
method: GET
path: "/v1/truth-social/post"
tags: ["Truth Social"]
---

# Truth Social Post API

`GET /v1/truth-social/post`

## Request

- Base URL: `https://api.captapi.com`
- URL: `https://api.captapi.com/v1/truth-social/post`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

One Truth — text, links[], card, reblog/quote chain, media.meta, externalVideoId.

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, including CP-F flags and raw Mastodon extras), engagement {replies,reblogs,likes,downvotes} (downvotes null when omitted), language from Truth Social's detector (null on empty text), 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. Media URLs on static-assets-1.truthsocial.com are unsigned — no mediaUrlsExpireAt. 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.

Docs: https://captapi.com/apis/truth-social-post

## Query parameters

- `url` string, required
- `cache` boolean

## Response `200`

Success. The data object for this endpoint.

- object
  - `success` unknown, required
  - `data` object, required
    - `platform` string: Always "truth_social" on this endpoint.
    - `id` string: Stable platform ID for the item.
    - `url` string: Canonical URL of the item.
    - `text` string: Plain text from the status HTML with unbroken URLs (href preferred over span-broken visible text).
    - `publishedAt` string: Publish date (ISO 8601) when the platform exposes an absolute timestamp.
    - `author` object
      - `platform` string: Always "truth_social" on this endpoint.
      - `id` string: Id of this author item.
      - `username` string: Account username / handle.
      - `url` string: Canonical URL of the item.
      - `displayName` string: Display name of the account. Canonical across profile endpoints (prefer over name).
      - `bio` string: Profile bio. Canonical across profile endpoints (prefer over description on YouTube).
      - `avatar` string: Avatar / profile picture URL. Canonical across profile endpoints.
      - `banner` string: Banner / cover image URL. Canonical across profile endpoints.
      - `verified` boolean: Whether the account is verified on this platform.
      - `followers` integer: Follower count.
      - `following` integer: Number of accounts followed.
      - `postCount` integer: Total posts/statuses/videos for the account. Canonical across profile endpoints (prefer over posts / videoCount / tweetCount).
      - `followersIsApproximate` boolean: True when followers was parsed from a compact Facebook chrome label (e.g. 28M) rather than an exact integer.
      - `followingIsApproximate` boolean: Following is approximate. Example: false.
      - `postCountIsApproximate` boolean: Post count is approximate. Example: false.
      - `website` string: Website listed on the profile.
      - `createdAt` string: Creation date (ISO 8601).
      - `lastStatusAt` string: Author's last status time as ISO-8601 UTC (date-only upstream → midnight Z).
      - `isPrivate` boolean: Author isPrivate (upstream locked) when the embedded account is rich.
      - `bot` boolean: Author bot flag when present.
      - `group` boolean: Author group flag, or post-level group when the status itself is a group post.
      - `location` unknown
      - `raw` object: Raw upstream payload for advanced use (fields may change). Prefer the normalized top-level fields when available.
        - `emojis` unknown[]
          - unknown
        - `fields` unknown[]
          - unknown
    - `engagement` object
      - `replies` integer: Number of replies.
      - `reblogs` integer: Reblogs. Example: 2586.
      - `likes` integer: Favourites count (identical to upstream upvotes_count). Catalogue name — upvotes twin omitted.
      - `downvotes` unknown
    - `language` string: Truth Social/Mastodon auto-detect, passed through. Not Captapi-classified. Empty text → null.
    - `sensitive` boolean: Whether the content is flagged sensitive.
    - `media` object[]
      - `type` string: Content type of the item.
      - `url` string: Canonical URL of the item.
      - `previewUrl` string: Media thumbnail URL, or null for Truth Social's missing.png placeholder.
      - `description` unknown
    - `links` unknown[]: Authoritative http(s) URLs from <a href> attributes (deduped).
      - unknown

## Other responses

- `400`: Bad request: wrong platform URL, unknown endpoint, or an invalid parameter value. Not billed.
- `401`: Missing, invalid or revoked API key. Not billed.
- `402`: Not enough credits for this request. Not billed.
- `404`: The resource does not exist or is not public. Not billed.
- `422`: A required parameter is missing or has the wrong type. Not billed.
- `429`: Rate limit reached. Wait for Retry-After seconds. Not billed.
- `502`: The platform could not be reached or returned nothing usable. Retryable, not billed. 503 and 504 use the same envelope.

---

[API](https://skmtc.dev/captapi/apis/captapi-api.md) · [All operations](https://skmtc.dev/captapi/apis/captapi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/captapi/apis/captapi-api/revisions/c9b9ac5ff1bd?raw)
