last updated: mar 02, 2026
base url: https://solar.hoodsyrian.tech/api
authentication: we use cookies dtoken and dsid. for requests you should use Cookie: "dtoken=_do_not_share_d.xxxxxxxx...xxxxxxxx; dsid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" (never share these tokens to anyone, they could grant an attacker access to your account).
responses: most endpoints return json with an ok boolean and usually an action string. some endpoints also return message, redirect, or refresh.
if you need something added to the api docs or you found a mismatch, email hoodsyrian@myself.com.
POST /account/index.php (authenticated) updates profile + uploads.
profile save fields: display_name, bio, timezone, time_format (12/24), is_private (0/1).
uploads (multipart): pfp and/or bg. output is saved as .webp and transparency is preserved.
additional /account/index.php actions: approve_follow, deny_follow, remove_pfp, remove_bg, export_data, delete_account, change_username.
change_username action: field new_username (1-20 chars, alphanumeric + underscores). cooldown: 14 days for regular users, 3 days for staff/verified users.
POST /account/relations.php (authenticated) fields: action and target_id (user id). actions: follow, approve, deny, block, unblock.
get user profile (GET /user/profile.php) returns basic profile fields as json. query: id (string).
GET /post/list.php query supports: tab (explore/following/mentions/me), q, user_id, post_id, activity=1, limit, offset.
guest limit: if you are not logged in, limit is capped at 10.
GET /post/view.php query supports: id (eg: GoETncUuBWHlH5qE).
POST /post/index.php (authenticated) post actions:
star, repost, delete, reply, star_reply, repost_reply, delete_reply, follow.
creating a post: omit action and send content and optional attachments[] (multipart).
content limits: 512 chars for normal users. 1024 chars for verified users and admins. posts/replies over the limit are rejected. attachments: up to 15 images or 1 video (you cannot mix images and videos in one post).
tip: for command line requests, include Accept: application/json to force json responses.
list posts (GET /post/list.php)
curl -sS "https://solar.hoodsyrian.tech/api/post/list.php?tab=explore&limit=10&offset=0" -H "Accept: application/json"
{"tab":"explore","user_id":"","post_id":"","activity":0,"limit":10,"offset":0,"posts":[{"id":"FsSrpTbweaolzUGc","user_id":"3882a9c397969e23","username":"hoodsyrian","content":"","attachment_url":"[\"https:\\/\\/bucket.hoodsyrian.tech\\/b2966b2bc0eb1843831e65510cc4170740a013694107128a14db257841a4d09a\\/a2bcf07a1ca84e85c29ec5f4ab4211210b1b033b5db3423bedd33b0537024624.jpg\"]","created_at":"2026-03-30 02:35:03","stars":0,"reposts":0,"replies":0,"viewer_has_replied":false,"viewer_has_starred":false,"viewer_has_reposted":false,"display_name":"hoodsyrian","pfp_version":1,"pfp_public_id":"66c07008bc3c1ab2","pfp_file":"5161960d8595cb3ab371fdac.webp","is_verified":1,"can_delete":false},{"id":"GHMMyZ7fjzDH62NP","user_id":"3882a9c397969e23","username":"hoodsyrian","content":"hi","attachment_url":null,"created_at":"2026-03-30 00:08:30","stars":0,"reposts":0,"replies":0,"viewer_has_replied":false,"viewer_has_starred":false,"viewer_has_reposted":false,"display_name":"hoodsyrian","pfp_version":1,"pfp_public_id":"66c07008bc3c1ab2","pfp_file":"5161960d8595cb3ab371fdac.webp","is_verified":1,"can_delete":false}],"replies":[],"items":[]}
view a single post (GET /post/view.php)
curl -sS "https://solar.hoodsyrian.tech/api/post/view.php?id=GoETncUuBWHlH5qE" -H "Accept: application/json"
{"ok":true,"id":"GoETncUuBWHlH5qE","user_id":"8e485d093f7e7f99","username":"hoodsyrian","content":"hi","attachment_url":null,"created_at":"2026-02-28 04:06:15","stars":0,"reposts":0,"replies":2,"viewer_has_replied":false,"viewer_has_starred":false,"viewer_has_reposted":false,"display_name":"hoodsyrian","pfp_version":18,"pfp_public_id":"bbd0a0c45bb2f094","pfp_file":"052f342b5ab4bb716fe78f61.webp","is_verified":1,"can_delete":false}
create post (POST /post/index.php, authenticated)
fetch("https://solar.hoodsyrian.tech/api/post/index.php", {
method: "POST",
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie": "dtoken=_do_not_share_d.xxxxxxxx...xxxxxxxx; dsid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
body: new URLSearchParams({ content: "hello from api" })
}).then(r => r.json()).then(console.log)
{"ok":true,"action":"create_post","refresh":true,"refresh_selector":"#feed-main"}
star a post (POST /post/index.php, authenticated)
fetch("https://solar.hoodsyrian.tech/api/post/index.php", {
method: "POST",
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded",
"Cookie": "dtoken=_do_not_share_d.xxxxxxxx...xxxxxxxx; dsid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
body: new URLSearchParams({ action: "star", post_id: "POST_ID" })
}).then(r => r.json()).then(console.log)
{"ok":true,"action":"star","post_id":"POST_ID","starred":true,"stars":1}
update profile + upload pfp (POST /account/index.php, authenticated, multipart)
const fd = new FormData()
fd.set("display_name", "cool person")
fd.set("bio", "hello")
fd.set("timezone", "UTC")
fd.set("time_format", "12")
fd.set("is_private", "0")
fd.set("pfp", fileInput.files[0])
fetch("https://solar.hoodsyrian.tech/api/account/index.php", {
method: "POST",
headers: {
"Accept": "application/json",
"Cookie": "dtoken=_do_not_share_d.xxxxxxxx...xxxxxxxx; dsid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
body: fd
}).then(r => r.json()).then(console.log)
{"ok":true,"action":"save_profile","pfp_url":"/pfp/USR_ID/256x256/PFP_ID.webp?t=1700000000"}
get user profile (GET /user/profile.php)
curl -sS "https://solar.hoodsyrian.tech/api/user/profile.php?id=8e485d093f7e7f99" -H "Accept: application/json"
{"ok":true,"user_id":"8e485d093f7e7f99","username":"hoodsyrian","display_name":"","bio":"","pfp_public_id":"bbd0a0c45bb2f094","pfp_file":"052f342b5ab4bb716fe78f61.webp","is_verified":true,"is_private":false}
this beta feature is not available for your account at this moment, check back later
send requests to the api and see responses in real time
response will appear here