---
title: "Update source name, tags, rules, content, summaries, or rollup"
method: POST
path: "/api/sources/{id}/settings"
tags: ["Sources"]
---

# Update source name, tags, rules, content, summaries, or rollup

`POST /api/sources/{id}/settings`

## Request

- Base URL: `https://keep.md`
- URL: `https://keep.md/api/sources/{id}/settings`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `keep.session_token`

Update source name, tags, rules, content, summaries, or rollup.

## Path parameters

- `id` string, required

## Headers

- `Keep-API-Version` string

## Request body

- SourceSettingsRequest
  - `name` string
  - `defaultTags` string[]
  - `smartTagRules` SmartTagRule[]
    - `tag` string, required
    - `include` string[]
    - `exclude` string[]
  - `expandFullContent` boolean
  - `autoSummarize` boolean
  - `rollupEnabled` boolean
  - `contentMode` 'posts' | 'articles' | 'both'

## Response `200`

Updated source settings

- object
  - `ok` boolean
  - `source` Source: A compact content-source manifest. Config and tag rules are returned only with include=settings or include=sensitive. Cursor is returned only with include=sensitive.
    - `id` string, required
    - `type` 'rss' | 'youtube_channel' | 'x_articles' | 'email_inbox' | 'web_monitor', required
    - `name` string
    - `status` 'active' | 'paused' | 'error', required
    - `contentMode` 'posts' | 'articles' | 'both'
    - `pollEveryMin` integer
    - `nextPollAt` integer, nullable
    - `lastRunAt` integer, nullable
    - `lastSuccessAt` integer, nullable
    - `lastError` string, nullable
    - `inboxAddress` string, nullable
    - `config` object: Source configuration. Present with include=settings or include=sensitive. Secret fields and credential-like URL parameters are replaced with [redacted] unless include=sensitive was requested.
    - `cursor` object: Internal source cursor. Present only when include=sensitive was requested.
    - `createdAt` integer, required
    - `updatedAt` integer, required

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: The credential lacks access or the plan does not include the feature
- `404`: Resource not found

---

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