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

# Create a new post

`POST /posts`

Create a new post to share something with others

## Request body

- NewPostRequest
  - `username` string, required — Username of the post author
  - `content` string, required — Content of the post

## Response `201`

Post created successfully

- Post
  - `id` string, uuid, required — Unique identifier for the post
  - `username` string, required — Username of the post author
  - `content` string, required — Content of the post
  - `createdAt` string, date-time, required — Timestamp when the post was created
  - `updatedAt` string, date-time, required — Timestamp when the post was last updated
  - `likesCount` integer, required — Number of likes on the post
  - `commentsCount` integer, required — Number of comments on the post

## Other responses

- `400` — Bad request - invalid input or validation error
- `500` — Internal server error

## Changes

- **2026-07-17** `41c89b420e85` — 3 breaking, 1 info
  - the `content` response property's maxLength was increased from `1000` to `2000` for the response status `201`
  - the `details` response's property type changed from `object` to `array` for status `400`
  - the `details` response's property type changed from `object` to `array` for status `500`
  - the `content` request property's maxLength was increased from `1000` to `2000`
- **2025-05-30** `2775bd09f55e` — 5 breaking, 2 warning, 6 info
  - the `content` request property's minLength was increased from `0` to `1`
  - the `username` request property's minLength was increased from `0` to `1`
  - the `id` response's property type changed from `integer` to `string`, and format from no format to `uuid` for status `201`
  - removed the required property `commentCount` from the response with the `201` status
  - …9 more
- **2025-05-30** `dbaf42ae4311` — 9 breaking, 2 warning, 4 info
  - the `content` response property's maxLength was unset from `2000` for the response status `201`
  - the `username` response property's maxLength was unset from `50` for the response status `201`
  - the `content` response property's minLength was decreased from `1` to `0` for the response status `201`
  - the `username` response property's minLength was decreased from `1` to `0` for the response status `201`
  - …11 more

[Change history](https://skmtc.dev/azure/apis/simple-social-media-api/changes/posts/post.md)

---

[API](https://skmtc.dev/azure/apis/simple-social-media-api.md) · [All operations](https://skmtc.dev/azure/apis/simple-social-media-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/azure/simple-social-media-api/revisions/41c89b420e85/schema)
