---
title: "Schedule multiple podcasts"
method: POST
path: "/content/Schedule"
tags: ["Content"]
---

# Schedule multiple podcasts

`POST /content/Schedule`

Create multiple podcasts at once, scheduled at intervals from a start time. Supports two modes - URLs mode (one podcast per episode, with each episode containing multiple URLs) or cached sources mode (feedSelections and/or youtubeChannels). Either 'urls' or (feedSelections/youtubeChannels + numberOfEpisodes) must be provided, but not both.

## Request body

- union
  - object
    - `urls` array[], required — Array of episodes, where each episode is an array of URLs to create a podcast from (URLs mode - cannot be used with feedSelections or youtubeChannels)
      - string[]
    - `feedSelections` FeedSelection[] — Cached feed items to include in scheduled episodes (cannot be used with urls)
      - `feedId` integer, required — Identifier of the feed containing the cached items
      - `feedItemIds` string[], required — Identifiers of cached posts or videos to include from that feed
    - `numberOfEpisodes` integer — Number of episodes to create (required when using feedSelections or youtubeChannels)
    - `youtubeChannels` string[] — Array of connected YouTube channel IDs to pull recent videos from (cannot be used with urls)
    - `frequency` integer, required — Frequency in minutes between scheduled podcasts
    - `instructions` string — Optional instructions for podcast generation
    - `brandUrl` string, uri — Optional brand/service URL to include in each podcast (URLs mode only)
    - `duration` 'short' | 'long' | 'default' — Duration preference for podcasts
    - `style` 'deep dive' | 'brief' | 'critique' | 'debate' — Style of podcast content
    - `language` string — Language for podcast generation
    - `podcastId` string — Podcast show ID to associate episodes with
    - `episodeTitle` string — Optional episode title when associating to a podcast show
    - `voice1` integer — Numeric id of first voice from /content/GetVoices (if provided, will use custom voices mode)
    - `voice2` integer — Numeric id of second voice from /content/GetVoices (requires voice1)
    - `startOn` string, date-time — Start time for scheduling (defaults to current time, cannot be more than 24 hours in the past)
    - `callbackData` string — Optional data for webhook callbacks
    - `notebookId` string — Notebook ID for enterprise clients
  - object
    - `urls` array[] — Array of episodes, where each episode is an array of URLs to create a podcast from (URLs mode - cannot be used with feedSelections or youtubeChannels)
      - string[]
    - `feedSelections` FeedSelection[], required — Cached feed items to include in scheduled episodes (cannot be used with urls)
      - `feedId` integer, required — Identifier of the feed containing the cached items
      - `feedItemIds` string[], required — Identifiers of cached posts or videos to include from that feed
    - `numberOfEpisodes` integer, required — Number of episodes to create (required when using feedSelections or youtubeChannels)
    - `youtubeChannels` string[] — Array of connected YouTube channel IDs to pull recent videos from (cannot be used with urls)
    - `frequency` integer, required — Frequency in minutes between scheduled podcasts
    - `instructions` string — Optional instructions for podcast generation
    - `brandUrl` string, uri — Optional brand/service URL to include in each podcast (URLs mode only)
    - `duration` 'short' | 'long' | 'default' — Duration preference for podcasts
    - `style` 'deep dive' | 'brief' | 'critique' | 'debate' — Style of podcast content
    - `language` string — Language for podcast generation
    - `podcastId` string — Podcast show ID to associate episodes with
    - `episodeTitle` string — Optional episode title when associating to a podcast show
    - `voice1` integer — Numeric id of first voice from /content/GetVoices (if provided, will use custom voices mode)
    - `voice2` integer — Numeric id of second voice from /content/GetVoices (requires voice1)
    - `startOn` string, date-time — Start time for scheduling (defaults to current time, cannot be more than 24 hours in the past)
    - `callbackData` string — Optional data for webhook callbacks
    - `notebookId` string — Notebook ID for enterprise clients
  - object
    - `urls` array[] — Array of episodes, where each episode is an array of URLs to create a podcast from (URLs mode - cannot be used with feedSelections or youtubeChannels)
      - string[]
    - `feedSelections` FeedSelection[] — Cached feed items to include in scheduled episodes (cannot be used with urls)
      - `feedId` integer, required — Identifier of the feed containing the cached items
      - `feedItemIds` string[], required — Identifiers of cached posts or videos to include from that feed
    - `numberOfEpisodes` integer, required — Number of episodes to create (required when using feedSelections or youtubeChannels)
    - `youtubeChannels` string[], required — Array of connected YouTube channel IDs to pull recent videos from (cannot be used with urls)
    - `frequency` integer, required — Frequency in minutes between scheduled podcasts
    - `instructions` string — Optional instructions for podcast generation
    - `brandUrl` string, uri — Optional brand/service URL to include in each podcast (URLs mode only)
    - `duration` 'short' | 'long' | 'default' — Duration preference for podcasts
    - `style` 'deep dive' | 'brief' | 'critique' | 'debate' — Style of podcast content
    - `language` string — Language for podcast generation
    - `podcastId` string — Podcast show ID to associate episodes with
    - `episodeTitle` string — Optional episode title when associating to a podcast show
    - `voice1` integer — Numeric id of first voice from /content/GetVoices (if provided, will use custom voices mode)
    - `voice2` integer — Numeric id of second voice from /content/GetVoices (requires voice1)
    - `startOn` string, date-time — Start time for scheduling (defaults to current time, cannot be more than 24 hours in the past)
    - `callbackData` string — Optional data for webhook callbacks
    - `notebookId` string — Notebook ID for enterprise clients

## Response `200`

Podcasts scheduled successfully

- object
  - `success` boolean — Whether the operation was successful
  - `scheduled_requests` union[]
    - union
      - object — Response for URLs mode
        - `request_id` string — ID of the scheduled request
        - `urls` string[] — Array of URLs this request was created from
        - `scheduled_on` string, date-time — When this request is scheduled to run
        - `status` integer — Initial status (0)
      - object — Response for feedSelections / YouTube mode
        - `request_id` string — ID of the scheduled request
        - `feed_ids` integer[] — Feed IDs used for this episode (if any)
        - `feed_selections` FeedSelection[] — Feed selections used for this episode
          - `feedId` integer, required — Identifier of the feed containing the cached items
          - `feedItemIds` string[], required — Identifiers of cached posts or videos to include from that feed
        - `feed_items_per_episode` integer — Total cached items included across feeds for this episode
        - `youtube_channel_ids` string[] — YouTube channel IDs used for this episode
        - `episode_number` integer — Episode number in the series
        - `scheduled_on` string, date-time — When this request is scheduled to run
        - `status` integer — Initial status (0)
  - `total_created` integer — Total number of requests created
  - `start_time` string, date-time — Start time used for scheduling
  - `frequency_minutes` integer — Frequency in minutes between requests
  - `mode` 'URLs' | 'sources' — Mode used for scheduling
  - `total_feeds_per_episode` integer — Number of feed groups per episode (sources mode only)
  - `total_feed_items_per_episode` integer — Number of cached feed items per episode (sources mode only)
  - `total_youtube_channels_per_episode` integer — Number of YouTube channels per episode (sources mode only)
  - `total_urls` integer — Total number of URLs across all episodes (URLs mode only)

## Other responses

- `400` — Invalid request parameters or insufficient credits
- `401` — Unauthorized

---

[API](https://skmtc.net/autocontentapi/apis/content-api.md) · [All operations](https://skmtc.net/autocontentapi/apis/content-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/autocontentapi/content-api/revisions/355890b6b4cc/schema)
