---
title: "Publish or schedule rendered content"
method: POST
path: "/content/pieces/{pieceId}/publish"
tags: ["Content"]
---

# Publish or schedule rendered content

`POST /content/pieces/{pieceId}/publish`

## Request

- Base URL: `https://app.getprolifik.com/api/v1`
- URL: `https://app.getprolifik.com/api/v1/content/pieces/{pieceId}/publish`
- Auth: HTTP bearer

Creates an externally visible post immediately, or at scheduledAt when supplied. The piece must be status ready with rendered media. Requires the separate publish:write scope.

## Path parameters

- `pieceId` string, uuid, required

## Headers

- `Idempotency-Key` string, required

## Request body

- PublishContent
  - `brandId` string, uuid, required
  - `connectionIds` string[], required
  - `caption` string, required
  - `hashtags` string[]
  - `scheduledAt` string, date-time
  - `aiGenerated` boolean: Publish with the platform's synthetic-media disclosure: TikTok's native AI-generated label, and a 'Made with AI' caption line elsewhere. Defaults to true when the piece uses AI Studio or influencer media.

## Response `201`

Publication accepted

- object

## Other responses

- `400`: Request failed
- `401`: Request failed
- `402`: Payment required. error.code is subscription_required (the plan does not include this feature, or the key's account no longer has a plan: API keys are paid-only, so every write from a key whose account has none is refused; see error.upgradeUrl), insufficient_credits (the AI-credit balance is short; see error.needed, error.balance, error.upgradeUrl), or quota_exceeded (a plan quota such as monthly videos or clip minutes).
- `403`: Request failed
- `404`: Request failed
- `409`: Request failed
- `429`: Request failed

---

[API](https://skmtc.dev/getprolifik/apis/prolifik-public-api.md) · [All operations](https://skmtc.dev/getprolifik/apis/prolifik-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getprolifik/apis/prolifik-public-api/revisions/301e79c5763c?raw)
