Skip to main content
PATCH
Update article automation settings
Update any subset of the fields listed on Article Automation. Only the keys you send are changed.
Writing requires managed (admin/owner) access to the brand.
preferredCMSProvider must be one of the brand’s connected integrations (or embed, which is always available), or the request returns 400. preferredPostingTime must be a valid window name or HH:MM, otherwise 400. timeZone is written to the brand’s timezone, not just to the automation settings. preferredTopicIds, preferredArticleTypes, and the image-style arrays are filtered to known/owned values, so unsupported entries are silently dropped. An unrecognized postingFrequency is silently coerced to every-7-days rather than rejected; changing the cadence re-spaces pending content-planner rows. An unrecognized writingLanguage code is ignored; send an explicit null to clear it back to the brand’s default language. authors replaces the whole list: names are trimmed and de-duplicated, at most 20 are kept, and an avatar or url that is not an http(s) link is dropped.
Changing writingLanguage only affects articles created after the change. Each article records the language it was written in, so existing articles keep theirs when they are refreshed, audited, or edited.

Authorizations

Authorization
string
header
required

Your SnowSEO API key (sk_...).

Body

application/json
teamId
string
automation
boolean
postingFrequency
string
preferredPostingTime
string
timeZone
string
targetPostStatus
enum<string>
Available options:
draft,
published
preferredTopicIds
string[]
preferredArticleTypes
string[]
preferredContentLength
enum<string>
Available options:
short,
medium,
long
preferredCMSProvider
string | null
writingLanguage
string | null

Language code articles are written in (e.g. 'es'). Usually two letters; Chinese is 'zh_CN'/'zh_TW' and Hebrew is 'iw'. Null clears it back to inheriting the brand language. Applies to articles only - keyword research, SERP data and AI-visibility tracking stay on the brand language.

useHumanizer
boolean
optionalSections
object

Optional sections generated into each article.

contentTone
string[]

Writing-tone pool; one tone is picked per article. Empty means any tone. Values: Professional (Formal, business-focused), Conversational (Friendly, approachable), Expert (Authoritative, technical), Casual (Friendly, conversational), Academic (Research-based, scholarly), Creative (Storytelling, engaging).

defaultImageProvider
string | null

Where article images come from: 'ai' (generated), 'stock' (stock photos), or null for no images.

Style pool for AI featured images; one is picked per article. Used when defaultImageProvider is 'ai'. Values: airy, photographic, cartoonish, pencil-sketch, 3d-clay, custom.

inArticleImageStyles
string[]

Style pool for AI images inside the article body. Used when defaultImageProvider is 'ai'. Values: photographic, cartoonish, pencil-sketch, infographic.

Reference image for the 'custom' featured image style. Null clears it.

Include text in AI featured images.

Use the brand colours in AI featured images.

Put the brand logo into AI featured images.

keepTableOfContents
boolean

Keep the generated table of contents when publishing. Default false - most CMS themes render their own, so ours goes out as a duplicate.

autoUpdateExistingArticles
boolean
articleUpdateFrequency
string
articleUpdateMinAgeDays
number
authors
object[]

The brand's reusable authors. Those with isDefault go on every new article; the first is the primary byline.

Response

200 - application/json

Default Response

success
boolean
message
string