Skip to content
scrapeatlas.Dashboard

Get a Truth Social user’s posts

Try in Playground

Retrieve a page of public timeline posts, newest first, excluding replies unless include_replies is true. Provide handle or user_id and pass next_max_id for the next page. Use trim for compact records.

GET/v1/truthsocial/user/postsx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
7
handlestringquery

Public username; mutually exclusive with user_id. Costs one extra upstream read to resolve the account ID.

max 65 chars

ExampleExample_User
user_idstringquery

Account ID string from the profile endpoint; mutually exclusive with handle.

next_max_idstringquery

Request: cursor from the previous page; returned posts are strictly older than it. Response: ID of the last returned post, or null when the timeline or window has ended.

trimenumquery

Optional true or false (default false). True returns only id, text, created_at, language, url, replies_count, reblogs_count, favourites_count, upvotes_count, downvotes_count and media_attachments per post.

one of: true, false

include_repliesenumquery

Optional true or false (default false). True includes the account's replies.

one of: true, false

sincenumber | stringquery

Earliest publication time to include, ISO 8601 or Unix seconds.

untilnumber | stringquery

Publication time to stop before, ISO 8601 or Unix seconds; later than since.

Response fields
54
requestIdstring

Request correlation UUID.

Upstream document reads (including the handle lookup and one shared transient retry), decoded JSON bytes delivered to the parser and elapsed milliseconds. An interrupted browser transfer may not be included in responseBytes.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable public data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Canonical public profile or post URL that the record describes.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

Complete means every supported source record on this page was returned unchanged. order is newest_first; window echoes since/until.

coverage.sourcestring

Always included.

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

coverage.orderenum

Always included.

one of: newest_first, oldest_first, ranked, relevance, source_order

Optional.

coverage.window.sincestringoptional

Optional.

coverage.window.untilstringoptional

Optional.

Ordered source posts (text first, then every source field). At most 20 per page; the page size is fixed by the source.

up to 20 items

posts.textstring

Always included.

posts.idstring

Always included.

posts.created_atstring

Always included.

posts.in_reply_to_idstringnullableoptional

Optional.

posts.sensitivebooleanoptional

Optional.

posts.spoiler_textstringoptional

Optional.

posts.visibilitystringoptional

Optional.

posts.languagestringnullable

Always included.

posts.uristringoptional

Optional.

posts.urlstring

Always included.

posts.contentstringoptional

Optional.

Optional.

posts.account.idstring

Always included.

posts.account.usernamestring

Always included.

min 1 chars

posts.account.acctstring

Always included.

min 1 chars

posts.account.display_namestring

Always included.

posts.account.lockedboolean

Always included.

posts.account.botboolean

Always included.

posts.account.created_atstring

Always included.

posts.account.notestring

Always included.

posts.account.urlstring

Always included.

absolute HTTPS URL

posts.account.avatarstring

Always included.

posts.account.headerstring

Always included.

posts.account.followers_countinteger

Always included.

≥ 0

posts.account.following_countinteger

Always included.

≥ 0

posts.account.statuses_countinteger

Always included.

≥ 0

posts.account.verifiedboolean

Always included.

posts.media_attachmentsobject[]

Always included.

posts.mentionsobject[]optional

Optional.

posts.tagsobject[]optional

Optional.

posts.replies_countinteger

Always included.

≥ 0

posts.reblogs_countinteger

Always included.

≥ 0

posts.favourites_countinteger

Always included.

≥ 0

posts.upvotes_countintegeroptional

Optional.

≥ 0

posts.downvotes_countintegeroptional

Optional.

≥ 0

next_max_idstringnullable

Request: cursor from the previous page; returned posts are strictly older than it. Response: ID of the last returned post, or null when the timeline or window has ended.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
12
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, ambiguous or unsupported parameters, or an unsupported post URL.
401unauthorizedInvalid API key.
403restricted_pageThe record requires a signed-in Truth Social session.
404not_foundUnknown account or post.
429upstream_rate_limitedSource throttled retrieval.
502upstream_challengedThe source edge blocked the request (status challenged).
502unsupported_pageMissing, malformed or mismatched source data, including a username or post identity that differs from the request.
502response_too_large payload_too_complexSource exceeds parsing limits.
502unsafe_redirect upstream_error request_limitBounded retrieval failed.
503busyAll slots occupied.
504timeoutTotal deadline exceeded.
200partialMalformed timeline entries were omitted (malformed_posts_omitted).