> For the complete documentation index, see [llms.txt](https://docs.autocontentapi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.autocontentapi.com/quick-start/podcasts/create-feed.md).

# Create a Feed

Capture posts from social sources once and reuse them for podcasts, schedules, and social reposts inside AutoContent.

## Before You Begin

* Add your API key in `Settings`; the Feeds pages stay locked until authentication succeeds.
* Decide which source type you need. Feeds support X/Twitter, Reddit, YouTube channels, RSS URLs, and X News topics.
* Keep the source identifiers handy: X username without `@`, subreddit without `r/`, YouTube channel URL or handle, RSS URL, or X News topic/search query.

## Step 1: Open the Feeds Dashboard

1. In the sidebar, go to `Feeds`.
2. Review any existing feeds grouped by source. Each card shows the most recent refresh time and shortcuts to the original account or subreddit.
3. Click `Create Feed` to launch the builder at `/feeds/create`.

## Step 2: Fill Out Feed Details

The form mirrors the publishing requirements enforced by the API:

| Field      | Required | Notes                                                                                         |
| ---------- | -------- | --------------------------------------------------------------------------------------------- |
| Feed Name  | Yes      | Friendly label that appears in episode and scheduler pickers.                                 |
| Feed Type  | Yes      | `1` = X/Twitter, `2` = Reddit, `3` = YouTube channel, `4` = RSS, `5` = X News topic.          |
| Identifier | Yes      | Use `internalId` for X, Reddit, RSS, and X News. Use `channel` or `url` for YouTube channels. |

Cards highlight the differences between source types. Use the helper text under each field if you forget the exact format.

## Step 3: Create the Feed

Select `Create Feed`. The button locks while the API runs and the success banner reveals the new `Feed ID`. You will also see the feed under the relevant section back on the dashboard.

Need the raw request for automation? Toggle `Show API Request` to view the exact payload the UI sends:

```bash
curl -X POST "https://api.autocontentapi.com/feeds" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Tech News from Elon Musk",
    "feedTypeId": 1,
    "internalId": "elonmusk"
  }'
```

On success the API responds with:

```json
{
  "success": true,
  "feedId": 42,
  "message": "Feed created successfully"
}
```

Other feed type examples:

```json
{
  "name": "AI Product RSS",
  "feedTypeId": 4,
  "internalId": "https://example.com/feed.xml"
}
```

```json
{
  "name": "AutoContent YouTube",
  "feedTypeId": 3,
  "channel": "https://www.youtube.com/@AutoContentAPI"
}
```

```json
{
  "name": "X News: AI",
  "feedTypeId": 5,
  "internalId": "artificial intelligence"
}
```

## Step 4: Manage Feeds from the Dashboard

The `Feeds` page is your control center:

* **View source:** `View Source` opens the original account or subreddit in a new tab.
* **Check freshness:** Each card shows the last update timestamp and relative age (for example, `12m ago`).
* **Delete feed:** Use the `X` button on a card to remove a feed (confirmation required). Your plan controls how many feeds/channels you can keep.
* **Empty state:** If you clear every feed, you will get a guided prompt to create a new one.

## Step 5: Generate Podcasts from Feeds

Feeds become selectable across creation tools:

* In `Podcasts -> Episodes -> New Episode`, choose the `Use Feeds` card, pick one or more feeds, and finish the request. That selection reuses the same flow documented in [Create a Podcast Episode from an X Feed](/quick-start/podcasts/create-feed-podcast.md).
* In the Scheduler, switch `Input Mode` to `Feeds` to automate recurring drops based on your saved sources.
* When episode generation finishes, attach it to a show via [Create a Podcast Show](/quick-start/podcasts/create-podcast-show.md) so the RSS feed updates automatically.

For direct API calls, first fetch selectable cached items:

```bash
curl -X GET "https://api.autocontentapi.com/feeds/42/items" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

The response includes the feed and recent items:

```json
{
  "feed": {
    "id": 42,
    "name": "Tech News from Elon Musk",
    "feedTypeId": 1
  },
  "items": [
    {
      "identifier": "1876982459012345678",
      "content": "New product update...",
      "resourceType": "text",
      "resourceValue": "New product update..."
    }
  ]
}
```

Pass selected item `identifier` values through `feedSelections`:

```json
{
  "outputType": "audio",
  "feedSelections": [
    {
      "feedId": 42,
      "feedItemIds": ["1876982459012345678", "1876982459012345679"]
    }
  ],
  "text": "Create a concise news-style podcast from these selected feed items."
}
```

`feedSelections` replaces the older top-level `feeds` array. You can include up to 10 feed groups and up to 50 item IDs per feed group.

## Step 6: Automate Feed Runs

Feed subscriptions watch a feed and create new content as new items arrive.

### Subscribe an Existing Feed Template

Create a reusable template with `/content/Create`:

```bash
curl -X POST "https://api.autocontentapi.com/content/Create" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "outputType": "audio",
    "templateMode": {
      "type": "feed",
      "name": "Daily AI news digest"
    },
    "text": "Create a five-minute daily digest with the biggest developments and practical takeaways.",
    "duration": "default",
    "style": "deep dive"
  }'
```

The response includes `template_request_id`. Subscribe the feed to that template:

```bash
curl -X POST "https://api.autocontentapi.com/feeds/subscriptions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "feedId": 42,
    "requestId": "TEMPLATE_REQUEST_ID",
    "intervalMinutes": 1440,
    "digestMode": true
  }'
```

* `intervalMinutes`: Minimum time between automated runs. Omit it to run whenever new items are available.
* `digestMode`: When `true`, the run combines the window of new items into one generated request. When omitted or `false`, the automation can create one request per item.
* `lastProcessedItemId`: Optional item identifier to mark earlier content as already handled.

### Create an Explainer Automation Inline

For explainer videos, `/feeds/subscriptions` can create the template for you:

```bash
curl -X POST "https://api.autocontentapi.com/feeds/subscriptions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "feedId": 42,
    "intervalMinutes": 720,
    "digestMode": true,
    "automation": {
      "type": "explainer",
      "instructions": "Turn each feed window into a short executive explainer with a clear takeaway.",
      "language": "English",
      "voiceId": 13,
      "titlePrompt": "Use a concise news headline",
      "thumbnailImagePrompt": "Clean editorial thumbnail with bold subject contrast"
    }
  }'
```

`voiceId` must be a numeric ID from `/content/GetVoices`.

List and remove subscriptions:

```bash
curl -X GET "https://api.autocontentapi.com/feeds/subscriptions" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

```bash
curl -X DELETE "https://api.autocontentapi.com/feeds/subscriptions/SUBSCRIPTION_ID" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

## Step 7: Reuse Feeds Elsewhere

Beyond podcasts, your saved feeds appear inside recurring X posts and other automations. Because all tools reference the same list, keeping feeds updated in the dashboard keeps every workflow in sync.

## Related Endpoints

* `POST /feeds` – Create a new feed.
* `GET /feeds` – List all feeds available to the account.
* `GET /feeds/{id}/items` – List cached feed items for `feedSelections`.
* `GET /feeds/subscriptions` – List feed subscriptions.
* `POST /feeds/subscriptions` – Create a feed subscription.
* `DELETE /feeds/subscriptions/{subscriptionId}` – Remove a feed subscription.
* `POST /feeds/delete` – Remove a feed by ID.

## What's Next?

* Turn a feed into audio using [Create a Podcast Episode from an X Feed](/quick-start/podcasts/create-feed-podcast.md).
* Schedule those episodes for release with the [Scheduler](/quick-start/podcasts/set-duration.md).
* Mix feeds with other sources when building a show via [Create a Podcast Episode](/quick-start/podcasts/create-podcast-episode.md).
