Create or update a feed
Make an authorized change through your connected assistant.
outwrite_save_feedoutwrite_save_feed
Save a keyword, news, RSS or YouTube feed and start its initial refresh. Supply a stable new UUID and version 0 for creation; use the saved version for updates. A news feed requires exactly one query in topics. Optional newsTimeRange is day, week (default), or month; country selects the search market. includeSources and excludeSources accept up to five plain domains each and apply to collected stories. Managed feeds are permanent and cannot be created here. Each Pro feed refresh costs 25 credits, including setup; subsequent keyword, news, RSS and YouTube refreshes are weekly. Managed refills only when usable ideas run low. Empty refreshes have no charge. Confirm rights to repurpose content. Requires explicit user intent, confirm:true, a UUID idempotencyKey and maximumCredits for this immediate action. Recurring settings require recurringConsent:true after the user approves their ongoing costs. Retry identical arguments with the same key; inspect an uncertain receipt before any new action.
Access and behavior
| Property | Value |
|---|---|
| Permission | pro:write |
| Effect | Can change your workspace |
Read the current workspace state before making a change. Respect the returned proposal, revision and operation state rather than assuming the request has finished.
Parameters
| Parameter | Required | Type | Details |
|---|---|---|---|
workspaceId | Optional | string | Format: uuid. |
input | Required | object | See the complete schema below. |
idempotencyKey | Required | string | Format: uuid. |
confirm | Required | boolean | Value: true. |
maximumCredits | Required | number | Minimum 0. Maximum 100000. |
recurringConsent | Optional | boolean | Default: false. |
Complete input schema
The schema is generated from the registered tool contract. Account permissions, revision checks and cross-field validation also apply on the server.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"input": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"version": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"brandId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"kind": {
"type": "string",
"enum": [
"managed",
"keyword",
"news",
"rss",
"youtube"
]
},
"url": {
"type": "string",
"format": "uri"
},
"topics": {
"default": [],
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"minLength": 2,
"maxLength": 160
}
},
"competitors": {
"default": [],
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"format": "uri"
}
},
"language": {
"default": "English",
"type": "string",
"minLength": 2,
"maxLength": 40
},
"country": {
"default": "United States",
"type": "string",
"minLength": 2,
"maxLength": 80
},
"newsTimeRange": {
"type": "string",
"enum": [
"day",
"week",
"month"
]
},
"includeSources": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"maxLength": 253
}
},
"excludeSources": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"maxLength": 253
}
},
"ownsContent": {
"default": false,
"type": "boolean"
},
"youtubeImport": {
"default": "choose",
"type": "string",
"enum": [
"choose",
"all"
]
}
},
"required": [
"id",
"brandId",
"name",
"kind"
],
"additionalProperties": false
},
"idempotencyKey": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"confirm": {
"type": "boolean",
"const": true
},
"maximumCredits": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"recurringConsent": {
"default": false,
"type": "boolean"
}
},
"required": [
"input",
"idempotencyKey",
"confirm",
"maximumCredits"
],
"additionalProperties": false
}
Working safely
For an identical retry, reuse its idempotency key. If the saved state changed, read it again and prepare a new request. An operation that is queued or running is not complete.