Skip to content

Stories

POST/api/v1.2/stories/publish

Publish a story

Pixelfed only User token

Body parameters

imagefilerequired

overlays[]array of objects

overlays[][content]string

overlays[][backgroundColor]string

overlays[][fontFamily]string

Returns

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

qstringrequired

Returns

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

filefilerequired

durationinteger

Returns

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_idstringrequired

durationintegerrequired

can_replybooleanrequired

can_reactbooleanrequired

Returns

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

idstringrequired

Returns

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

sidstringrequired

cursorstring

Returns

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/comment

Reply to a story

Pixelfed only User token

Body parameters

sidstringrequired

captionstringrequired

Returns

curl -X POST "https://pixelfed.social/api/v1.1/stories/comment" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "sid": "731061790234124288",
    "caption": "Is that the old ferry dock?"
  }'
Response
{
  "code": 200,
  "msg": "Sent!"
}
POST/api/v1.1/stories/self-expire/{id}

Delete a story

Pixelfed only User token

Path parameters

idstringrequired

Returns

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"
}
Pixelfed is free and open source software. Edit this page Report a docs issue