---
title: "Create post"
method: POST
path: "/bluesky/create-post"
tags: ["Bluesky by Unshape"]
---

# Create post

`POST /bluesky/create-post`

Create a post from the request's body and publish it on Bluesky.

## Headers

- `X-Bluesky-Username` string, required
- `X-Bluesky-Email` string, required
- `X-Bluesky-App-Password` string, required

## Request body

- BlueskyPost
  - `embedUrl` string, uri — URL which will have an embed in the post if provided.
  - `shareTheLove` boolean — Will auto-post about Unshape if checked. This will only happen the first time, after that the information is stored in Stripe so the auto-post do not replay other times.
  - `text` string, required — Text content of the post.
  - `tags` string — Hashtags to add at the end of the post. This will truncate the text of the post.
  - `lang` unknown[] — Post language. If set, will override Bluesky's language detection
    - unknown
  - `image` string, uri — Image to add to the post.
  - `startThread` boolean — If set to true, will start a thread when a post content exceeds the 300 chars limit.

## Response `200`

Success - Post was successfully created in Bluesky

- BlueskyPostCreated
  - `success` boolean
  - `result` object
    - `uri` string
    - `cid` string

## Other responses

- `400` — Bad request - Invalid post record
- `401` — Unauthorized - Invalid credentials
- `402` — Payment Required - Subscription required

---

[API](https://skmtc.dev/unshape/apis/unshape-api.md) · [All operations](https://skmtc.dev/unshape/apis/unshape-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/unshape/unshape-api/revisions/25e25e454db5/schema)
