Truth Social profile posts
Beta GET /v1/truthsocial/profile/posts
GET /v1/truthsocial/profile/posts
A paged list of the account's own posts (ReTruths are left out), newest first. A numeric id (the profile's id) saves a lookup call.
- Cost: 1 credit
- Status: Beta. Built and tested against recorded responses; the shape may still gain fields.
- Cache: Results are kept up to 30 days; send
max_age_daysto reuse them for free. - Timeout: A request still running after about 25 seconds answers
202with a job to poll (Batch and jobs).
Parameters#
| Name | Type | Required | Description |
|---|---|---|---|
handle | string | one of | Username, with or without the leading @. Also accepted as username. |
id | string | one of | Truth Social user id (the id from the profile). Also accepted as user_id. |
Send at least one of handle, id. If you send several, the first listed is used and the rest are ignored.
Every request also accepts:
cursor: the cursor from the previous page (Pagination).trim:truefor a smaller response withoutnullfields andextra.raw:trueto also get the platform's original object asraw.max_age_days: accept a cached result up to this many days old, for 0 credits (Caching).
Example request#
Set your key in the environment first (see Authentication).
curl -G "https://api.socialscrape.io/v1/truthsocial/profile/posts" \
-H "x-api-key: $SOCIALSCRAPE_API_KEY" \
--data-urlencode "handle=realDonaldTrump"import os
import requests
params = {
"handle": "realDonaldTrump",
}
res = requests.get(
"https://api.socialscrape.io/v1/truthsocial/profile/posts",
headers={"x-api-key": os.environ["SOCIALSCRAPE_API_KEY"]},
params=params,
)
body = res.json()
if body["ok"]:
print(body["data"])
else:
print(body["error"]["code"], body["error"]["message"])const url = new URL("https://api.socialscrape.io/v1/truthsocial/profile/posts");
url.search = new URLSearchParams({
"handle": "realDonaldTrump"
}).toString();
const res = await fetch(url, {
headers: { "x-api-key": process.env.SOCIALSCRAPE_API_KEY! },
});
const body = await res.json();
if (body.ok) {
console.log(body.data);
} else {
console.error(body.error.code, body.error.message);
}{
"nodes": [
{
"name": "SocialScrape Truth Social profile posts",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
0,
0
],
"parameters": {
"method": "GET",
"url": "https://api.socialscrape.io/v1/truthsocial/profile/posts",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "handle",
"value": "realDonaldTrump"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "x-api-key",
"value": "={{ $env.SOCIALSCRAPE_API_KEY }}"
}
]
}
}
}
],
"connections": {}
}Example response#
This is a sample from a recorded response, lists and long text are shortened. Status 200.
{
"ok": true,
"credits_charged": 1,
"credits_remaining": 4999,
"cached": false,
"cached_at": null,
"request_id": "req_5b2ed67ef35fade8df57609f",
"data": {
"object": "list",
"items": [
{
"object": "post",
"platform": "truthsocial",
"id": "117526608599642271",
"url": "https://truthsocial.com/@realDonaldTrump/117526608599642271",
"type": "link",
"author": {
"id": "107780257626128497",
"handle": "realDonaldTrump",
"name": "Donald J. Trump",
"url": "https://truthsocial.com/@realDonaldTrump",
"avatar_url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
"verified": true
},
"title": null,
"text": "Congressman Troy Downing is doing a truly fantastic job representing the incredible people of Montana’s 2nd Congressional District!\n\nTroy bravely served our Great Country in the U.S. Air Force as a Combat Veteran and, in Congress, he is fig...",
"published_at": "2026-10-29T22:42:09.852000Z",
"duration_seconds": null,
"language": "en",
"hashtags": null,
"mentions": null,
"stats": {
"views": null,
"likes": 2747,
"comments": 281,
"shares": 745,
"saves": null,
"dislikes": null
},
"media": {
"thumbnail_url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/cache/preview_cards/images/072/390/266/original/da2f8e8e5f86edb6.jpg",
"video_url": null,
"audio_url": null,
"image_urls": null,
"width": null,
"height": null
},
"song": null,
"location": null,
"is_pinned": false,
"is_sponsored": false,
"extra": {
"card": {
"description": "Election Day in Montana is almost here, and it’s time to make your voice heard. Make a plan to vote!",
"image": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/cache/preview_cards/images/072/390/266/original/da2f8e8e5f86edb6.jpg",
"provider_name": "swampthevoteusa.com",
"title": "MONTANA: MAKE A PLAN TO VOTE!",
"url": "https://swampthevoteusa.com/montana/"
},
"downvotes": 0,
"links": [
"https://swampthevoteusa.com/montana/"
],
"upvotes": 2747,
"visibility": "public"
}
},
{
"object": "post",
"platform": "truthsocial",
"id": "117526606999074581",
"url": "https://truthsocial.com/@realDonaldTrump/117526606999074581",
"type": "link",
"author": {
"id": "107780257626128497",
"handle": "realDonaldTrump",
"name": "Donald J. Trump",
"url": "https://truthsocial.com/@realDonaldTrump",
"avatar_url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
"verified": true
},
"title": null,
"text": "Aaron Flint will be a tremendous Congressman for the amazing people of Montana’s 1st Congressional District!\n\nA Fifth Generation Montanan, and distinguished Combat Veteran, Aaron has dedicated his life to serving his Great State and Country...",
"published_at": "2026-10-29T22:41:45.431000Z",
"duration_seconds": null,
"language": "en",
"hashtags": null,
"mentions": null,
"stats": {
"views": null,
"likes": 2411,
"comments": 84,
"shares": 625,
"saves": null,
"dislikes": null
},
"media": {
"thumbnail_url": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/cache/preview_cards/images/072/390/266/original/da2f8e8e5f86edb6.jpg",
"video_url": null,
"audio_url": null,
"image_urls": null,
"width": null,
"height": null
},
"song": null,
"location": null,
"is_pinned": false,
"is_sponsored": false,
"extra": {
"card": {
"description": "Election Day in Montana is almost here, and it’s time to make your voice heard. Make a plan to vote!",
"image": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/cache/preview_cards/images/072/390/266/original/da2f8e8e5f86edb6.jpg",
"provider_name": "swampthevoteusa.com",
"title": "MONTANA: MAKE A PLAN TO VOTE!",
"url": "https://swampthevoteusa.com/montana/"
},
"downvotes": 0,
"links": [
"https://swampthevoteusa.com/montana/"
],
"upvotes": 2411,
"visibility": "public"
}
}
],
"cursor": "117525723707964253",
"has_more": true,
"parent": null
},
"cursor": "117525723707964253",
"has_more": true
}Response#
A list of Post objects in data.items, with data.cursor and data.has_more.
See Data models for every field. The envelope around data is described in Responses.
Errors#
Failures are free: credits_charged is 0. Branch on error.code, never on the message.
| Code | HTTP | Retry | Meaning |
|---|---|---|---|
invalid_params | 400 | no | A parameter is missing, unknown or has the wrong type. |
not_found | 404 | no | The platform says this profile, post or item does not exist. |
Every request can also fail with the account and platform errors listed on the Errors page.
Also served at#
These paths answer the same request, so code written for other APIs keeps working: /v1/truthsocial/user/posts. See Switching from ScrapeCreators.
Related endpoints#
- Truth Social profile (
GET /v1/truthsocial/profile) - Truth Social post (
GET /v1/truthsocial/post)