Truth Social hub

Truth Social profile posts API

Page recent public Truth Social posts for a handle or account id — text, author, media, and engagement — with opaque cursor pagination.

GET /v1/truthsocial/profiles/{handle}/posts

2 credits base, +2 with `includeReplies`. Up to 4 credits max.

About this endpoint

News monitors and research pipelines often start with a Truth Social username and need the recent status stream: body text, when it posted, media or link cards, and engagement counts. Running that through a Mastodon client or ad-hoc scraper means a second auth story and brittle HTML beside the marketplace key you already ship.

`GET /v1/truthsocial/profiles/{handle}/posts` lists recent public posts. Pass a username (with or without `@`) or a Truth Social account id (`profile.id`) in the path, send `x-api-key`, and branch on `data.lookupStatus` before you write rows. On `found`, `data.posts` is newest-first. Replies are excluded by default; set `includeReplies=true` to include them (+2 credits). Each item can include id, url, ISO timestamps, text, author snapshot, metrics, media, link previews, polls, and quote summaries when Truth Social exposes them. Page older posts with the opaque `cursor` query param from `data.nextCursor` while `data.hasMore` is true. Optional `limit` caps page size (1–20).

This route is the feed for a profile. For the profile card alone, use `GET /v1/truthsocial/profiles/{handle}`. For one status you already have a permalink for, use `GET /v1/truthsocial/posts?url=`. Pricing for this list operation is shown on this page; each paginated page is a separate billed request — trust `meta.creditsCharged` on the response.

Truth Social profile posts API FAQ

How do I list Truth Social posts by handle?

Call GET /v1/truthsocial/profiles/{handle}/posts with your Social Fetch API key in the x-api-key header. The path accepts a public username (with or without @) or an account id. Read data.lookupStatus, then data.posts. Full parameters and examples are in the API docs linked from this page.

How many credits does listing Truth Social profile posts cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

How does cursor pagination work?

Each response includes data.nextCursor and data.hasMore. When hasMore is true, pass nextCursor as the cursor query param on the next request. The cursor is opaque — do not invent or parse it. Omit cursor for the first page. Each page is a separate billed request; confirm with meta.creditsCharged.

What fields are in each Truth Social profile post?

Items can include id, url, createdAt, editedAt, text, spoilerText, language, visibility, isSensitive, author, reply and quote ids, metrics (replies, reposts, favorites, and related counts when present), media, linkPreview, poll, and quote summary when Truth Social shows them.

What does lookupStatus mean on profile posts?

found means the profile resolved and data.posts may contain statuses (or be empty if there are no public posts on this page). not_found means the profile did not resolve; posts will be empty. HTTP 200 still means the request finished — always branch on lookupStatus.

Profile posts vs single post vs profile card?

Use this route to page recent posts for a username or account id. Use GET /v1/truthsocial/posts?url= when you already have a public status URL. Use GET /v1/truthsocial/profiles/{handle} for the identity card, not the feed.

Can I access locked or private Truth Social accounts?

No. Only publicly visible profiles and statuses. Locked accounts still resolve as lookupStatus: found with profile.isLocked: true; posts may be empty when Truth Social withholds the timeline. Missing handles return not_found.

Are replies included in profile posts?

Not by default. Pass includeReplies=true to include reply posts (+2 credits on top of the base charge). Keep the same includeReplies value when paginating with cursor.