---
title: "Publish or schedule a clip to a connected social account"
method: POST
path: "/jobs/{id}/clips/{index}/publish"
---

# Publish or schedule a clip to a connected social account

`POST /jobs/{id}/clips/{index}/publish`

## Request

- Base URL: `https://katto.tech/api/v1`
- URL: `https://katto.tech/api/v1/jobs/{id}/clips/{index}/publish`
- Auth: HTTP bearer

Posts a finished clip to a social account the user connected in the Katto dashboard, through the same path as the dashboard export; with schedule_at, creates the same scheduled post as the calendar. Publishing needs a paid plan, scheduling needs Creator (403 otherwise). A platform that is not connected (or whose session expired) returns 409 with code platform_not_connected / platform_reconnect_required and connect_url. TikTok requires privacy_level (no default). NOT idempotent: every call is a new public post. Requires write scope.

## Path parameters

- `id` string, uuid, required
- `index` integer, required

## Request body

- object
  - `platform` 'youtube' | 'tiktok' | 'linkedin' | 'instagram' | 'bluesky' | 'mastodon' | 'threads', required
  - `caption` string: Post text. On YouTube it defaults the title and description.
  - `title` string: YouTube title (max 100). Defaults to caption, then the clip's title.
  - `description` string: YouTube description. Defaults to caption.
  - `tags` string[]: YouTube tags.
  - `privacy_status` 'public' | 'unlisted' | 'private': YouTube only.
  - `schedule_at` string, date-time: Publish later instead of now: future, at most 7 days ahead.
  - `privacy_level` 'PUBLIC_TO_EVERYONE' | 'MUTUAL_FOLLOW_FRIENDS' | 'FOLLOWER_OF_CREATOR' | 'SELF_ONLY': TikTok only, required for TikTok.
  - `disable_comment` boolean: TikTok only.
  - `disable_duet` boolean: TikTok only.
  - `disable_stitch` boolean: TikTok only.
  - `brand_content` boolean: TikTok only: paid partnership (cannot be SELF_ONLY).
  - `brand_organic` boolean: TikTok only: promotes the user's own business.

## Response `200`

Published

- object
  - `status` string
  - `platform` string
  - `result` object: The platform's response (post id / url).

## Other responses

- `201`: Scheduled
- `400`: Error
- `401`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/katto/apis/katto-api.md) · [All operations](https://skmtc.dev/katto/apis/katto-api/llms.txt) · [OpenAPI document](https://skmtc.dev/katto/apis/katto-api/revisions/f2ae2d85e51d?raw)
