Truth Social has no public developer API. These endpoints return public posts, user profiles and user timelines as JSON, so you can monitor accounts from Python or any HTTP client instead of maintaining a scraper.
| Endpoint | What it returns | Credits/call | USD/call (Freelance plan) |
|---|---|---|---|
/v1/truthsocial/post | Post | 1 | $0.0017 |
/v1/truthsocial/user | Profile | 1 | $0.0017 |
/v1/truthsocial/user_posts | User Posts | 1 | $0.0017 |
/v1/truthsocial/postPost 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | yes | Truth Social post URL |
download_media | boolean | no | Set to true to download the attached video/images and get back permanent Supabase URLs. Costs 10 credits if media is found, 1 credit otherwise. |
Sample response (trimmed):
{
"text": "It’s so hard to watch as Highly Qualified and Respected Ambassadors, who we desperately need representing our Country in Faraway Lands, are purposefully mean...",
"id": "114315219437063160",
"created_at": "2025-04-10T19:03:40.023Z",
"in_reply_to_id": null,
"quote_id": null,
"in_reply_to_account_id": null,
"sensitive": false,
"spoiler_text": "",
"visibility": "public",
"language": "en",
"uri": "https://truthsocial.com/@realDonaldTrump/114315219437063160",
"url": "https://truthsocial.com/@realDonaldTrump/114315219437063160",
"content": "<p>It’s so hard to watch as Highly Qualified and Respected Ambassadors, who we desperately need representing our Country in Faraway Lands, are purposefully m...",
"account": {
"id": "107780257626128497",
"username": "realDonaldTrump",
"acct": "realDonaldTrump",
"display_name": "Donald J. Trump",
"locked": false,
"bot": false,
"discoverable": false,
"group": false,
"created_at": "2022-02-11T16:16:57.705Z",
"note": "<p></p>",
"url": "https://truthsocial.com/@realDonaldTrump",
"avatar": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
"avatar_static": "https://static-assets-1.truthsocial.com/tmtg:prime-ts-assets/accounts/avatars/107/780/257/626/128/497/original/454286ac07a6f6e6.jpeg",
"header": "https://static-as/v1/truthsocial/userProfile 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
handle | string | yes | Truth Social username |
/v1/truthsocial/user_postsUser Posts 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
handle | string | no | Truth Social username |
user_id | string | no | Truth Social user id. Use this for faster response times. Trumps is 107780257626128497. It is the 'id' field in the profile endpoint. |
trim | boolean | no | Set to true for a trimmed down version of the response |
next_max_id | string | no | Used to paginate to next page |
curl -H "X-Scapi-Key: $SCAPI_KEY" "https://api.scrapall.bipsport.com/scapi/v1/truthsocial/post"import os, requests
r = requests.get("https://api.scrapall.bipsport.com/scapi/v1/truthsocial/post",
headers={"X-Scapi-Key": os.environ["SCAPI_KEY"]})
print(r.json())There is no open developer API for reading public posts. These endpoints return the public data as JSON with one Scrapall API key header.
Yes. The Python example on this page uses requests; any HTTP client works the same way.
No. No login or cookie is used on your side; you only send the API key header.
Open the Buy page, pick the Freelance plan and pay in USDT on TRC20 or ERC20. The key is shown once, right after the payment is confirmed on-chain.
The cost table on this page lists credits per call for each endpoint. The Freelance plan is $45 for 27,000 credits per 30 days.
Full reference: all truthsocial endpoints.