Skip to main content

Post story

POST 

/story.post

Posts a story to your Roam. Stories are short photo or video updates that appear above your profile picture for your teammates, and expire 24 hours after posting.

Posting Flow

  1. Create the media asset with asset.create using purpose: "story", and upload the file bytes using the returned upload instructions.
  2. Call this endpoint with the assetId (and an optional caption).

The media must be a photo or a video (videos up to 2.5 minutes; media is optimized to portrait 1080×1920). If the upload is still processing — typical for videos in the first seconds after upload — this endpoint returns a 400 with a "still processing" message; retry after a short delay.

The media must outlive the story's 24-hour lifetime, so post within about 23 hours of creating the asset (story assets expire about 48 hours after creation); older assets are rejected and must be recreated.

Access: Personal only. Stories are always posted as the authenticated user — a story appears above your profile picture, and there is no bot persona surface for stories — so organization tokens are rejected.

Required scope: chat:send_message or chat:write (the same permission that gates sending a chat message)


OpenAPI Spec: openapi.json

Request

Responses

The story was posted.