Vanilla Forums Config API
The Config API from Vanilla Forums — 1 operation(s) for config.
The Config API from Vanilla Forums — 1 operation(s) for config.
openapi: 3.0.3
info:
description: API access to your community.
title: Vanilla Addons Config API
version: '2.0'
servers:
- url: https://open.vanillaforums.com/api/v2
tags:
- name: Config
paths:
/config:
get:
summary: Get the site's config.
tags:
- Config
parameters:
- name: select
in: query
description: 'A CSV of config key names to select a sparse set of items. Use * as a wildcard to match multiple keys.
'
style: form
schema:
type: array
items:
type: string
- name: fields
in: query
style: form
description: Only return fields with these keys from the output. Use dot notation for nested fields.
schema:
type: array
items:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Config'
description: Success
x-addon: dashboard
patch:
summary: Update one or more config settings.
tags:
- Config
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Config'
responses:
'204':
description: Success
x-addon: dashboard
components:
schemas:
Config:
type: object
properties:
configUUID:
description: Used for internal configuration validation.
type: string
x-key: configUUID
x-read: public
branding.addressBarColor:
description: 'Some browsers support a color for the address bar.
'
type: string
default: ''
example: '#C0FFEE'
maxLength: 9
x-key: Garden.MobileAddressBarColor
x-read: public
x-write: community.manage
branding.bannerImage:
description: 'The default banner image across the site. This can be overridden on a per category basis.
'
type: string
default: ''
example: ''
maxLength: 500
x-key: Garden.BannerImage
x-read: public
x-write: community.manage
x-upload: true
branding.favicon:
description: 'Your site''s favicon appears in your browser''s title bar. It will be scaled down appropriately.
'
type: string
default: ''
example: ''
maxLength: 500
x-key: Garden.FavIcon
x-read: public
x-write: community.manage
x-upload: true
branding.logo:
description: 'The banner logo appears at the top of your site. Themes made with the theme editor and some custom themes don''t use this setting.
'
type: string
default: ''
example: ''
maxLength: 500
x-key: Garden.Logo
x-read: public
x-write: community.manage
x-upload: true
branding.mobileLogo:
description: 'The mobile banner logo appears at the top of your site. Themes made with the theme editor and some custom themes don''t use this setting.
'
type: string
default: ''
example: ''
maxLength: 500
x-key: Garden.MobileLogo
x-read: public
x-write: community.manage
x-upload: true
branding.shareImage:
description: When someone shares a link from your site we try and grab an image from the page. If there isn't an image on the page then we'll use this image instead. The image should be at least 50×50, but we recommend 200×200.
type: string
default: ''
example: ''
maxLength: 500
x-key: Garden.ShareImage
x-read: public
x-write: community.manage
x-upload: true
branding.touchIcon:
description: 'The touch icon appears when you bookmark a website on the homescreen of a mobile device. These are usually 152 pixels.
'
type: string
default: ''
example: ''
maxLength: 500
x-key: Garden.TouchIcon
x-read: public
x-write: community.manage
x-upload: true
forum.disabled:
description: 'Remove discussion and categories links from menus. Set discussion and category related pages to return not found page 404.
'
type: boolean
default: false
example: true
x-key: Vanilla.Forum.Disabled
x-read: public
x-write: community.manage
garden.cookie.name:
description: The prefix for cookie names
type: string
default: Vanilla
x-key: Garden.Cookie.Name
x-read: public
garden.cookie.path:
description: The path to cookie names
type: string
default: Vanilla
x-key: Garden.Cookie.Path
x-read: public
garden.description:
description: 'The site description usually appears in search engines. You should try having a description that is 100-150
characters long.
'
type: string
default: ''
maxLength: 350
x-key: Garden.Description
x-read: public
x-write: community.manage
garden.externalUrlFormat:
description: 'The format used to generate URLs to pages from external sources, typically emails. Set this config setting
your site is embedded or uses a reverse proxy. Place a "%s" in the URL and it will be replaced with the path
being generated.
'
type: string
default: ''
example: https://example.com/community/%s
pattern: (^$)|(^https?://.+%s)
x-key: Garden.ExternalUrlFormat
x-read: community.manage
garden.homepageTitle:
description: 'The homepage title is displayed on your home page. Pick a title that you would want to see appear in search
engines.
'
type: string
default: ''
example: Welcome To Our Support Community
maxLength: 100
x-key: Garden.HomepageTitle
x-read: public
x-write: community.manage
garden.locale:
description: 'The default locale for your site. This will be the source language for your community.
'
type: string
default: en
maxLength: 100
x-key: Garden.Locale
x-read: public
x-write: site.manage
machineTranslation.maxLocale:
description: 'Maximum number of additional languages allowed for machine translation (plan limit).
'
type: integer
default: 5
minimum: 0
x-key: MachineTranslation.maxLocale
x-read: site.manage
machineTranslation.wordsNotToTranslate:
description: 'Words or phrases to skip when machine-translating content. Stored as comma-separated; UI may use semicolons.
'
type: string
default: ''
x-key: MachineTranslation.wordsNotToTranslate
x-read: site.manage
x-write: site.manage
machineTranslation.locales:
description: 'Ordered list of locale keys for available languages (language picker). Persisted as $Configuration[''MachineTranslation''][''locales''].
'
type: array
items:
type: string
x-key: MachineTranslation.locales
x-read: site.manage
x-write: site.manage
machineTranslation.translatableContent:
description: 'Which content types are enabled for machine translation (posts, comments, widgetText, articles, etc.).
'
type: object
properties:
posts:
type: boolean
default: false
comments:
type: boolean
default: false
widgetText:
type: boolean
default: false
articles:
type: boolean
default: false
categoryNames:
type: boolean
default: false
roleNames:
type: boolean
default: false
ranks:
type: boolean
default: false
badges:
type: boolean
default: false
x-key: MachineTranslation.translatableContent
x-read: site.manage
x-write: site.manage
machineTranslation.advancedPrompts:
description: 'Additional text included in translation prompts.
'
type: string
default: ''
x-key: MachineTranslation.advancedPrompts
x-read: site.manage
x-write: site.manage
machineTranslation.kbTranslationMode:
description: 'Controls whether Knowledge Base article translation runs automatically or manually.
When "automatic", articles are translated via GPT when created or updated.
When "manual", translation must be triggered from the article menu.
If a non-GPT translation service is configured on any locale, the effective mode is always "manual".
'
type: string
enum:
- manual
- automatic
default: manual
x-key: MachineTranslation.kbTranslationMode
x-read: site.manage
x-write: site.manage
garden.orgName:
description: 'Your organization name is used for SEO microdata and JSON+LD.
'
type: string
default: ''
maxLength: 50
x-key: Garden.OrgName
x-read: public
x-write: community.manage
garden.privacy.ips:
description: Anonymize IP addresses on users so they aren't tracked. You can specify "partial" to remove the last octet or full to anonymize the entire IP address.
type: string
default: ''
enum:
- ''
- partial
- full
x-key: Garden.Privacy.IPs
x-read: community.manage
garden.title:
description: 'The banner title appears on your site''s banner and in your browser''s title bar.
'
type: string
default: Vanilla
example: Support Community
minLength: 1
x-key: Garden.Title
x-read: public
x-write: community.manage
customLayout.home:
description: Should custom layouts be rendered on the home page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.home.Enabled
x-read: public
x-write: site.manage
customLayout.discussionList:
description: Should custom layouts be rendered on the discussionList page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.discussionList.Enabled
x-read: public
x-write: site.manage
customLayout.post:
description: Should custom layouts be rendered on the discussionThread page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.post.Enabled
x-read: public
x-write: site.manage
customLayout.createPost:
description: Should custom layouts be rendered on the create post page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.createPost.Enabled
x-read: public
x-write: site.manage
customLayout.categoryList:
description: Should custom layouts be rendered on the categoryList page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.categoryList.Enabled
x-read: public
x-write: site.manage
customLayout.nestedCategoryList:
description: Should custom layouts be rendered on the nestedCategoryList page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.nestedCategoryList.Enabled
x-feature: Feature.layoutEditor.categoryList.Enabled
x-read: public
x-write: site.manage
customLayout.discussionCategoryPage:
description: Should custom layouts be rendered on the discussionCategoryPage page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.categoryList.Enabled
x-feature: Feature.layoutEditor.categoryList.Enabled
x-read: public
x-write: site.manage
customLayout.event:
description: Should custom layouts be rendered on the event details page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.event.Enabled
x-read: public
x-write: site.manage
customLayout.group:
description: Should custom layouts be rendered on the group list page.
type: boolean
default: false
example: false
x-key: Feature.customLayout.group.Enabled
x-read: public
x-write: site.manage
hideLegacyLayouts:
description: Hide legacy layout settings in the dashboard when custom layouts are enabled.
type: boolean
default: false
example: false
x-key: Feature.hideLegacyLayouts.Enabled
x-read: site.manage
x-write: site.manage
labs.deferredLegacyScripts:
description: 'This setting loads the page before executing Javascript which can improve your SEO. Warning: Enabling this feature may cause Javascript errors on your site. See https://success.vanillaforums.com/kb/articles/140-defer-javascript-loading-feature for more information.'
type: boolean
default: true
example: true
x-key: Feature.DeferredLegacyScripts.Enabled
x-read: public
x-write: community.manage
labs.automationRules:
description: 'Enable automation Rules.
'
type: boolean
default: false
example: true
x-key: Feature.AutomationRules.Enabled
x-read: public
x-write: site.manage
labs.newAnalytics:
description: 'Enable new analytics.
'
type: boolean
default: false
example: true
x-key: Feature.NewAnalytics.Enabled
x-read: public
x-write: site.manage
labs.userCards:
description: 'Enable user cards on older themes.
'
type: boolean
default: false
example: true
x-key: Feature.UserCards.Enabled
x-read: public
x-write: site.manage
labs.useCustomLayout:
description: 'Enable use custom layout.
'
type: boolean
default: false
example: true
x-key: Feature.UseCustomLayout.Enabled
x-read: public
x-write: site.manage
labs.newSearchPage:
description: 'Enable the new search UI on older themes.
'
type: boolean
default: false
example: true
x-key: Feature.useNewSearchPage.Enabled
x-read: public
x-write: site.manage
labs.newQuickLinks:
description: 'Enable the new quick links UI on older themes.
'
type: boolean
default: false
example: true
x-key: Feature.NewQuickLinks.Enabled
x-read: public
x-write: site.manage
labs.newPostMenu:
description: 'Enable the new post menu UI on older themes.
'
type: boolean
default: false
example: true
x-key: Feature.NewPostMenu.Enabled
x-read: public
x-write: site.manage
labs.newUserManagement:
description: 'Enable the new user management page with new table and control buttons.
'
type: boolean
default: false
example: true
x-key: Feature.NewUserManagement.Enabled
x-read: public
x-write: site.manage
labs.newEmbedSystem:
description: 'Enable the new embed system beta.
'
type: boolean
default: false
example: true
x-key: Feature.newEmbedSystem.Enabled
x-read: public
x-write: site.manage
labs.customProfileFields:
description: 'Enable custom profile fields.
'
type: boolean
default: false
example: true
x-key: Feature.CustomProfileFields.Enabled
x-read: public
x-write: site.manage
labs.sentimentAnalysis:
description: 'Enable sentiment analysis.
'
type: boolean
default: false
example: true
x-key: EnabledPlugins.SentimentAnalysis
x-read: public
x-write: site.manage
labs.aiSuggestions:
description: 'Enable AI suggested answers
'
type: boolean
default: false
example: true
x-key: Feature.AISuggestions.Enabled
x-read: public
x-write: site.manage
embed.enabled:
description: 'Allow the site to be embedded at the embed.remoteUrl.
'
type: boolean
default: false
example: true
x-key: Garden.Embed.Allow
x-write: site.manage
x-read: site.manage
embed.remoteUrl:
description: 'Configure the remote embed URL for the site.
'
type: string
default: ''
example: https://my-site.com/forum
x-key: Garden.Embed.RemoteUrl
x-write: site.manage
x-read: site.manage
embed.forceEmbed:
description: 'Redirect users from the non-embedded site to the embedded site.
'
type: boolean
default: false
example: true
x-key: Garden.Embed.ForceModernEmbed
x-write: site.manage
x-read: site.manage
discussions.layout:
description: 'Choose the preferred layout for lists of discussions.
'
type: string
default: foundation
enum:
- modern
- table
- foundation
x-key: Vanilla.Discussions.Layout
x-read: public
x-write: site.manage
discussionThread.layout:
description: 'Choose the preferred layout for discussion threads.
'
type: string
default: foundation
enum:
- foundation
x-key: Vanilla.DiscussionThreads.Layout
x-read: public
x-write: site.manage
categories.layout:
description: 'Choose the preferred layout for lists of categories.
'
type: string
default: modern
enum:
- modern
- table
- mixed
- foundation
x-key: Vanilla.Categories.Layout
x-read: public
x-write: site.manage
routes.defaultController:
type: array
minItems: 2
maxItems: 2
items:
type: string
description: Define the routing rule for the home page. The first item is the URL or route to send the home page to. The second item is the type of redirect to perform. It must be one of "Internal", "Temporary" and "Permanent"
x-key: Routes.DefaultController
x-read: public
x-write: site.manage
vanilla.siteID:
description: 'The community siteID.
'
type: number
default: 0
x-key: Vanilla.SiteID
x-read: public
redirectURL.profile:
description: 'Custom URL to redirect the user instead of rendering Vanilla''s "Profile" page.
'
type: string
default: ''
x-key: Garden.Profile.RedirectUrl
x-read: public
x-write: site.manage
redirectURL.message:
description: 'Custom URL to redirect the user instead of rendering Vanilla''s "New Message" page.
'
type: string
default: ''
x-key: Garden.Messages.Add.RedirectUrl
x-read: public
x-write: site.manage
password.minLength:
description: 'The minimum number of characters a members password can be.
'
type: string
default: ''
x-key: Garden.Password.MinLength
x-read: public
x-write: site.manage
registration.method:
description: 'How members are able to register to the community.
'
type: string
enum:
- Basic
- Approval
- Invitation
- Connect
- Captcha
default: Captcha
x-key: Garden.Registration.Method
x-read: public
x-write: site.manage
profile.editEmails:
description: 'Responsible to allow users viewing own account, be able to edit their email.
'
type: boolean
default: true
x-key: Garden.Profile.EditEmails
x-read: public
x-write: site.manage
seo.metaHtml:
description: 'HTML <meta> tags for SEO purposes. This content is strictly validated to only contain meta tags `name` and `content` properties.
'
type: string
default: ''
minLength: 0
x-read: community.manage
x-write: community.manage
x-allowHtml: true
debug:
description: "Enable debug mode across the whole site for all requests. Only to be used for development purposes. DO NOT call set this on production sites. It is recommend to turn this on only when needed even on development sites because it slows performance and exposes server paths in stack traces.\n\n Debug mode causes errors to show stack traces, disables various caches, and causes certaining warnings to turn into exceptions.\n"
type: boolean
default: false
x-key: Debug
x-read: public
x-write: site.manage
plugins.qna:
description: Questions plugin enabled
type: boolean
default: false
x-key: EnabledPlugins.QnA
x-read: public
plugins.ideation:
description: Ideation plugin enabled
type: boolean
default: false
x-key: EnabledPlugins.ideation
x-read: public
plugins.polls:
description: Polls plugin enabled
type: boolean
default: false
x-key: EnabledPlugins.Polls
x-read: public
plugins.resolved:
description: Resolved plugin enabled
type: boolean
default: false
x-key: EnabledPlugins.resolved2
x-read: public
preferences.categoryFollowed.defaults:
description: 'This is where we store the default followed categories
'
type: string
default: '[]'
x-key: Preferences.CategoryFollowed.Defaults
x-read: community.manage
x-write: community.manage
Search.AiConversation.ExcludedCategoryIDs:
description: 'Array of category IDs to exclude from AI Search Assistant results
'
type: array
items:
type: integer
example:
- 1
- 2
- 3
x-key: Search.AiConversation.ExcludedCategoryIDs
x-read: site.manage
x-write: site.manage
Search.AiConversation.IncludedPostTypeIDs:
description: 'Array of post type IDs to include in AI Search Assistant results. If empty, all post types are included.
'
type: array
items:
type: string
example:
- discussion
- question
x-key: Search.AiConversation.IncludedPostTypeIDs
x-read: site.manage
x-write: site.manage
Search.AiConversation.IncludedStatusIDs:
description: 'Array of status IDs to include in AI Search Assistant results. If empty, all statuses are included.
'
type: array
items:
type: integer
example:
- 1
- 2
- 3
x-key: Search.AiConversation.IncludedStatusIDs
x-read: site.manage
x-write: site.manage
emailStyles.format:
description: 'Enable HTML emails
'
type: string
default: html
enum:
- html
- text
x-key: Garden.Email.Format
x-read: community.manage
x-write: community.manage
emailStyles.image:
description: 'HTML email image
'
type: string
default: ''
x-key: Garden.EmailTemplate.Image
x-read: community.manage
x-write: community.manage
emailStyles.textColor:
description: 'HTML email text color
'
type: string
default: '#333333'
x-key: Garden.EmailTemplate.TextColor
x-read: community.manage
x-write: community.manage
emailStyles.backgroundColor:
description: 'HTML email background color
'
type: string
default: '#eeeeee'
x-key: Garden.EmailTemplate.BackgroundColor
x-read: community.manage
x-write: community.manage
emailStyles.containerBackgroundColor:
description: 'HTML email page color
'
type: string
default: '#ffffff'
x-key: Garden.EmailTemplate.ContainerBackgroundColor
x-read: community.manage
x-write: community.manage
emailStyles.buttonTextColor:
description: 'HTML email button text color
'
type: string
default: '#ffffff'
x-key: Garden.EmailTemplate.ButtonTextColor
x-read: community.manage
x-write: community.manage
emailStyles.buttonBackgroundColor:
description: 'HTML email button background text color
'
type: string
default: '#38abe3'
x-key: Garden.EmailTemplate.ButtonBackgroundColor
x-read: community.manage
x-write: community.manage
outgoingEmails.supportName:
description: 'Email sent from the application will be addressed from this name
'
type: string
default: ''
x-key: Garden.Email.SupportName
x-read: community.manage
x-write: community.manage
outgoingEmails.supportAddress:
description: 'Email sent from the application will be addressed from this email address
'
type: string
default: ''
x-key: Garden.Email.SupportAddress
x-read: community.manage
x-write: community.manage
outgoingEmails.footer:
description: 'This may be used to include content such as organization name and address in all outgoing emails.
'
type: string
default: '[{"children":[{"text":""}],"type":"p"}]'
x-key: Garden.Email.Footer
x-read: community.manage
x-write: community.manage
x-allowHtml: true
emailNotifications.disabled:
description: 'When enabled, users may choose to receive notifications from the community
'
type: boolean
default: false
x-key: Garden.Email.Disabled
x-read: community.manage
x-write: community.manage
emailNotifications.fullPost:
description: 'Include full post in email notifications
'
type: boolean
default: true
x-key: Vanilla.Email.FullPost
x-read: community.manage
x-write: community.manage
emailDigest.enabled:
description: 'Use weekly community email digest
'
type: boolean
default: false
x-key: Garden.Digest.Enabled
x-read: community.manage
x-write: community.manage
emailDigest.autosubscribe.enabled:
description: 'Is auto subscribe to digest enabled for new users
'
type: boolean
default: false
x-key: Garden.Digest.Autosubscribe.Enabled
x-read: community.manage
x-write: community.manage
emailDigest.logo:
description: 'Digest logo
'
type: string
default: ''
x-key: Garden.Digest.Logo
x-read: community.manage
x-write: community.manage
emailDigest.defaultFrequency:
enum:
- daily
- weekly
- monthly
default: weekly
x-key: Garden.Digest.DefaultFrequency
x-read: community.manage
x-write: community.manage
emailDigest.dayOfWeek:
description: 'The Digest will be delivered on the set day of the week.
1 - Monday
2 - Tuesday
3 - Wednesday
4 - Thursday
5 - Friday
6 - Saturday
7 - Sunday
'
type: integer
default: 1
x-key: Garden.Digest.DayOfWeek
x-read: community.manage
x-write: community.manage
emailDigest.monthly.dayOfWeek:
description: 'The digest will be delivered on the set day of the week, once per month.
Used together with emailDigest.monthly.setPosition.
'
type: integer
default: 1
x-key: Garden.Digest.Monthly.DayOfWeek
x-read: community.manage
x-write: community.manage
emailDigest.monthly.setPosition:
description: 'Specifies that the digest should be delivered on the first or last occurence of the selected weekday of each month.
Used together with emailDigest.monthly.dayOfWeek.
'
type: string
enum:
- first
- last
default: first
x-key: Garden.Digest.Monthly.SetPosition
x-read: community.manage
x-write: community.manage
emailDigest.postCount:
description: 'Maximum number of posts that should appear in the email digest
'
type: integer
default: 5
minimum: 3
maximum: 20
x-key: Garden.Digest.PostCount
x-read: community.manage
x-write: community.manage
emailDigest.title:
description: 'Title appearing in the subject of email digest
'
type: string
default: ''
x-key: Garden.Digest.Title
x-read: community.manage
x-write: community.manage
emailDigest.includeCommunityName:
description: 'Include community name in the subject
'
type: boolean
default: true
x-key: Garden.Digest.IncludeCommunityName
x-read: community.manage
x-write: community.manage
emailDigest.introduction:
description: 'Appears before main content in email digest
'
type: string
default: '[{"children":[{"text":""}],"type":"p"}]'
x-key: Garden.Digest.Introduction
x-read: community.manage
x-write: community.manage
x-allowHtml: true
emailDigest.footer:
description: 'This may be used to include content such as organization name and address in email digest
'
type: string
default: '[{"children":[{"text":""}],"type":"p"}]'
x-key: Garden.Digest.Footer
x-read: community.manage
x-write: community.manage
x-allowHtml: true
emailDigest.i
# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vanilla-forums/refs/heads/main/openapi/vanilla-forums-config-api-openapi.yml