---
title: "Create a new post"
method: POST
path: "/posts"
tags: ["Posts"]
---

# Create a new post

`POST /posts`

## Request

- Base URL: `https://api.shopseen.com/v1`
- URL: `https://api.shopseen.com/v1/posts`
- Auth: HTTP bearer

## Request body

- object
  - `caption` string
  - `voice_caption_id` string, uuid: Optional uploader-owned reservation; requires at least one photo
  - `media` MediaInput[], required
    - `key` string, required: The key returned from upload-url
    - `media_type` 'photo' | 'video', required
    - `width` integer, nullable
    - `height` integer, nullable
    - `position` integer, required
  - `group_ids` string[]: Private lists whose current connected members become the immutable post audience

## Response `201`

Post created

- object
  - `post` Post
    - `id` string, uuid
    - `user_id` string, uuid
    - `caption` string, nullable
    - `voice_caption_duration_ms` integer, nullable: Optional voice caption; fetch through the authenticated post endpoint
    - `audience_type` 'all_connections' | 'lists': Whether the post is visible to all mutual connections or a publish-time list snapshot
    - `audience_member_count` integer: Number of snapshotted recipients (create response only)
    - `display_name` string
    - `avatar_url` string, nullable
    - `media` PostMedia[]
      - `id` string, uuid
      - `post_id` string, uuid
      - `position` integer
      - `media_url` string
      - `media_type` 'photo' | 'video'
      - `width` integer, nullable
      - `height` integer, nullable
      - `created_at` string, date-time
    - `comment_count` integer: Total number of comments on this post (feed only)
    - `recent_comments` CommentPreview[]: Latest 2 comments with display name and avatar (feed only)
      - `id` string, uuid
      - `user_id` string, uuid
      - `body` string
      - `display_name` string
      - `avatar_url` string, nullable
      - `created_at` string, date-time
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `deleted_at` string, date-time, nullable

---

[API](https://skmtc.dev/shopseen/apis/a-side-api.md) - [All operations](https://skmtc.dev/shopseen/apis/a-side-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shopseen/apis/a-side-api/revisions/f37f989e90da?raw)
