---
title: "Check, then schedule, a batch of posts"
method: POST
path: "/schedule"
---

# Check, then schedule, a batch of posts

`POST /schedule`

## Request

- Base URL: `https://clypmint.com/api/v1`
- URL: `https://clypmint.com/api/v1/schedule`
- Auth: HTTP bearer

Schedule many finished videos at once. First call with approve: false: it checks every slot (video ready, output, time 2 min to 60 days ahead, connected accounts) and changes nothing. Show the user the schedule; only after they say yes call again with approve: true, which schedules the ready ones and says which are still editing. Scheduling needs publishing permission. Never call approve: true without the user’s explicit yes. Cost: Free to schedule. Same as the MCP tool schedule_plan.

## Request body

- object
  - `items` object[], required
    - `video_id` string, required: The video id from list_videos.
    - `output_id` string: Which output to post (from check_video); the main video when left out.
    - `platforms` string[], required: INSTAGRAM, TIKTOK and/or YOUTUBE.
    - `post_at` string, date-time, required
    - `caption` string, required
    - `platform_options` object
      - `TIKTOK` object
        - `privacy` 'SELF_ONLY' | 'PUBLIC_TO_EVERYONE' | 'MUTUAL_FOLLOW_FRIENDS' | 'FOLLOWER_OF_CREATOR', required
        - `disableComments` boolean, required
        - `disableDuet` boolean, required
        - `disableStitch` boolean, required
        - `isAiGenerated` boolean, required
        - `isBrandContent` boolean, required
        - `isOrganicBrandContent` boolean, required
        - `consent` true, required
      - `YOUTUBE` object
        - `privacy` 'PUBLIC' | 'PRIVATE' | 'UNLISTED', required
        - `madeForKids` boolean, required
        - `containsSyntheticMedia` boolean
  - `timezone` string, required
  - `approve` boolean, required: false: check the schedule and change nothing. true: schedule the ready posts (publishing permission needed).
  - `operation_id` string: A stable ID for this request. Preserve it on retries. Use a new ID only for a deliberate new request.

## Response `200`

Check, then schedule, a batch of posts

- Result: The tool result, as the MCP tool of the same name returns it.

## Other responses

- `400`: The request is invalid. The message names each field to fix.
- `401`: A valid bearer token (API key or OAuth access token) is required.
- `402`: This account has no allowance left for this, or does not include it. error.checkout_url is where to add it.
- `403`: This needs publishing permission (scope clypmint.publish), or is not open on this account yet.
- `404`: The video, upload, memory or calendar was not found in this account.
- `409`: Busy: an upload or edit is already running, the video changed, or too many upload links are waiting.
- `413`: The request body is too large.
- `422`: Clypmint could not apply it as asked; error.problems names each part.
- `429`: A daily limit was reached (direct edits, caption fixes, upload links).
- `501`: This is not available on Clypmint yet; the message says what to use instead.
- `503`: Clypmint is busy. Try again in a moment.

---

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