Stories
GET/api/v1.2/stories/carousel
Get the stories carousel
Pixelfed only User token
Returns
curl "https://pixelfed.social/api/v1.2/stories/carousel" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"nodes": [{
"id": "self:2",
"username": "dansup",
"username_acct": "dansup",
"profile_id": "2",
"avatar": "https://pixelfed.social/storage/avatars/2/avatar.jpg",
"is_author": true,
"stories": [{
"id": "731056220419686400",
"type": "photo",
"url": "https://pixelfed.social/storage/_esm.t3/Kq9y/xN4bRe2/17aQ3kTz/Ab_t7Lw2nR.jpg",
"overlays": [{
"type": "text",
"content": "Low tide again",
"color": "#FFFFFF",
"fontSize": 42,
"x": 540,
"y": 1500,
"rotation": 0,
"scale": 1
}],
"duration": 10000,
"viewed": true,
"created_at": "2026-10-17T07:12:44+00:00",
"view_count": 23
}],
"url": "https://pixelfed.social/stories/dansup",
"hasViewed": true
}, {
"id": "pfs:412760184563377",
"username": "jonas",
"username_acct": "jonas",
"profile_id": "412760184563377",
"avatar": "https://pixelfed.social/storage/avatars/412760184563377/avatar.jpg",
"is_author": false,
"stories": [{
"id": "731061790234124288",
"type": "photo",
"url": "https://pixelfed.social/storage/_esm.t3/Kq9y/pL0dWe8/17Hc8mYr/Qe_s91Kd2.jpg",
"overlays": [],
"duration": 10000,
"viewed": false,
"created_at": "2026-10-17T08:34:02+00:00"
}],
"url": "https://pixelfed.social/stories/jonas",
"hasViewed": false
}]
}GET/api/v1.1/stories/carousel
Get the stories carousel (v1.1)
Pixelfed only User token
Returns
curl "https://pixelfed.social/api/v1.1/stories/carousel" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"self": {
"user": {
"id": "2",
"username": "dansup",
"avatar": "https://pixelfed.social/storage/avatars/2/avatar.jpg",
"local": true,
"is_author": true
},
"nodes": [{
"id": "731056220419686400",
"type": "photo",
"src": "https://pixelfed.social/storage/_esm.t3/Kq9y/xN4bRe2/17aQ3kTz/Ab_t7Lw2nR.jpg",
"duration": 5,
"seen": true,
"created_at": "2026-10-17T07:12:44+00:00"
}]
},
"nodes": [{
"id": "pfs:412760184563377",
"user": {
"id": "412760184563377",
"username": "jonas",
"username_acct": "jonas",
"avatar": "https://pixelfed.social/storage/avatars/412760184563377/avatar.jpg",
"local": true,
"is_author": false
},
"nodes": [{
"id": "731061790234124288",
"pid": "412760184563377",
"type": "photo",
"src": "https://pixelfed.social/storage/_esm.t3/Kq9y/pL0dWe8/17Hc8mYr/Qe_s91Kd2.jpg",
"duration": 3,
"seen": false,
"created_at": "2026-10-17T08:34:02+00:00"
}],
"url": "https://pixelfed.social/stories/jonas",
"seen": false
}]
}POST/api/v1.2/stories/publish
Publish a story
Pixelfed only User token
Body parameters
imagefilerequiredoverlays[]array of objectsoverlays[][content]stringoverlays[][backgroundColor]stringoverlays[][fontFamily]stringReturns
curl -X POST "https://pixelfed.social/api/v1.2/stories/publish" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-F "image=@low-tide.jpg" \
-F "overlays[0][type]=text" \
-F "overlays[0][content]=Low tide again" \
-F "overlays[0][color]=#FFFFFF" \
-F "overlays[0][fontSize]=42" \
-F "overlays[0][x]=540" \
-F "overlays[0][y]=1500"Response
{
"code": 200,
"msg": "Successfully added"
}GET/api/v1.2/stories/mention-autocomplete
Autocomplete mentions
Pixelfed only User token
Query parameters
qstringrequiredReturns
curl "https://pixelfed.social/api/v1.2/stories/mention-autocomplete?q=@jo" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
[{
"id": "412760184563377",
"username": "jonas",
"acct": "jonas",
"display_name": "Jonas Berg",
"locked": false,
"followers_count": 318,
"following_count": 204,
"statuses_count": 96,
"url": "https://pixelfed.social/jonas",
"avatar": "https://pixelfed.social/storage/avatars/412760184563377/avatar.jpg",
"local": true,
"has_story": true
}]POST/api/v1.1/stories/add
Upload story media (v1.1)
Pixelfed only User token
Body parameters
filefilerequireddurationintegerReturns
curl -X POST "https://pixelfed.social/api/v1.1/stories/add" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@harbour.mp4" \
-F "duration=8"Response
{
"code": 200,
"msg": "Successfully added",
"media_id": "731070114392444928",
"media_url": "https://pixelfed.social/storage/_esm.t3/Kq9y/xN4bRe2/17Zp2cVb/Lm_c8Qe1.mp4?v=1792226184",
"media_type": "video"
}POST/api/v1.1/stories/publish
Publish a story (v1.1)
Pixelfed only User token
Body parameters
media_idstringrequireddurationintegerrequiredcan_replybooleanrequiredcan_reactbooleanrequiredReturns
curl -X POST "https://pixelfed.social/api/v1.1/stories/publish" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"media_id": "731070114392444928",
"duration": 8,
"can_reply": true,
"can_react": true
}'Response
{
"code": 200,
"msg": "Successfully published"
}POST/api/v1.1/stories/seen
Mark a story as seen
Pixelfed only User token
Body parameters
idstringrequiredReturns
curl -X POST "https://pixelfed.social/api/v1.1/stories/seen" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "731061790234124288"
}'Response
{
"code": 200
}GET/api/v1.2/stories/viewers
List story viewers
Pixelfed only User token
Query parameters
sidstringrequiredcursorstringReturns
curl "https://pixelfed.social/api/v1.2/stories/viewers?sid=731056220419686400" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"data": [{
"id": "412760184563377",
"username": "jonas",
"acct": "jonas",
"display_name": "Jonas Berg",
"avatar": "https://pixelfed.social/storage/avatars/412760184563377/avatar.jpg",
"local": true,
"viewed_at": "2026-10-17T08:41:19+00:00"
}],
"links": {
"first": null,
"last": null,
"prev": null,
"next": "https://pixelfed.social/api/v1.2/stories/viewers?sid=731056220419686400&cursor=eyJpZCI6NzMxMDU5MDAyLCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9"
},
"meta": {
"path": "https://pixelfed.social/api/v1.2/stories/viewers",
"per_page": 10,
"next_cursor": "eyJpZCI6NzMxMDU5MDAyLCJfcG9pbnRzVG9OZXh0SXRlbXMiOnRydWV9",
"prev_cursor": null
}
}POST/api/v1.1/stories/self-expire/{id}
Delete a story
Pixelfed only User token
Path parameters
idstringrequiredReturns
curl -X POST "https://pixelfed.social/api/v1.1/stories/self-expire/731056220419686400" \
-H "Accept: application/json" \
-H "Authorization: Bearer $TOKEN"Response
{
"code": 200,
"msg": "Successfully deleted"
}