Skip to main content
POST
/
automation
/
schedule-clips
Schedule Clips
curl --request POST \
  --url https://public.reap.video/api/v1/automation/schedule-clips \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "clips": [
    {
      "projectId": "<string>",
      "clipId": "<string>",
      "title": "<string>",
      "description": "<string>",
      "tags": [
        "<string>"
      ]
    }
  ],
  "integrations": [
    "<string>"
  ],
  "scheduleDate": 123,
  "intervalSeconds": 300,
  "platformSettings": {
    "youtube": {
      "privacy": "public",
      "embeddable": true,
      "publicStats": true,
      "madeForKids": false
    },
    "tiktok": {
      "privacy": "public",
      "disableComments": false,
      "disableDuet": false,
      "disableStitch": false,
      "brandContent": false,
      "brandOrganic": false
    },
    "instagram": {
      "shareToFeed": false
    },
    "linkedin": {
      "privacy": "public"
    }
  }
}
'
{
  "posts": [
    {
      "id": "<string>",
      "projectId": "<string>",
      "clipId": "<string>",
      "platforms": [
        "<string>"
      ],
      "successPlatforms": [
        "<string>"
      ],
      "failedPlatforms": [
        "<string>"
      ],
      "integrations": [
        "<string>"
      ],
      "title": "<string>",
      "description": "<string>",
      "tags": [
        "<string>"
      ],
      "status": "processing",
      "scheduleType": "scheduled",
      "scheduleDate": 123,
      "publishDate": 123,
      "urls": {},
      "platformSettings": {
        "youtube": {
          "privacy": "public",
          "embeddable": true,
          "publicStats": true,
          "madeForKids": false
        },
        "tiktok": {
          "privacy": "public",
          "disableComments": false,
          "disableDuet": false,
          "disableStitch": false,
          "brandContent": false,
          "brandOrganic": false
        },
        "instagram": {
          "shareToFeed": false
        },
        "linkedin": {
          "privacy": "public"
        }
      },
      "createdAt": 123,
      "updatedAt": 123
    }
  ],
  "failed": [
    {
      "clipId": "<string>",
      "index": 123,
      "error": "<string>"
    }
  ]
}

Overview

Schedule one or more completed clips for publishing at a future date. Clips are published sequentially with a configurable interval between each. Use this for batch publishing workflows where you want to space out content over time.

Rate Limiting

This endpoint is rate limited to 10 requests per minute per API key.
  • Schedule date must be at least 50 minutes in the future and within 12 months
  • Interval between clips must be at least 5 minutes (300 seconds)
  • Maximum 50 clips per request
  • Each clip is scheduled at scheduleDate + (index * intervalSeconds)
  • Partial success is possible: some clips may fail validation while others are scheduled successfully
  • Only completed clips can be scheduled

Response

posts
array
Array of successfully scheduled post objects
failed
array
Array of clips that failed validation

Example Request

curl -X POST "https://public.reap.video/api/v1/automation/schedule-clips" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "clips": [
      {
        "projectId": "65f1a2b3c4d5e6f7a8b9c0d2",
        "clipId": "65f1a2b3c4d5e6f7a8b9c0d4",
        "title": "The Future of AI - Part 1",
        "description": "First in our AI series",
        "tags": ["ai", "technology"]
      },
      {
        "projectId": "65f1a2b3c4d5e6f7a8b9c0d2",
        "clipId": "65f1a2b3c4d5e6f7a8b9c0d5",
        "title": "The Future of AI - Part 2",
        "description": "Second in our AI series",
        "tags": ["ai", "technology"]
      }
    ],
    "integrations": ["66a1b2c3d4e5f6a7b8c9d0e1"],
    "scheduleDate": 1710100000,
    "intervalSeconds": 600,
    "platformSettings": {
      "youtube": {
        "privacy": "public",
        "madeForKids": false
      }
    }
  }'

Example Response

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
clips
object[]
required

List of clips to schedule (1-50)

integrations
string[]
required

List of integration IDs

scheduleDate
integer
required

Unix timestamp for the first clip (min 50 min in future)

intervalSeconds
integer
default:300

Seconds between each clip (min 300)

platformSettings
object

Per-platform publishing settings

Response

200 - application/json

Successful response

posts
object[]
failed
object[]