octoprint.schema

pydantic model octoprint.schema.BaseModel
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

pydantic model octoprint.schema.BaseModelExtra
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

  • extra: str = allow

octoprint.schema.config

pydantic model octoprint.schema.config.Config
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field accessControl : AccessControlConfig = AccessControlConfig(salt=None, userManager='octoprint.access.users.FilebasedUserManager', groupManager='octoprint.access.groups.FilebasedGroupManager', permissionManager='octoprint.access.permissions.PermissionManager', userfile=None, groupfile=None, autologinLocal=False, localNetworks=['127.0.0.0/8', '::1/128'], autologinAs=None, autologinHeadsupAcknowledged=False, trustBasicAuthentication=False, checkBasicAuthenticationPassword=True, trustRemoteUser=False, remoteUserHeader='REMOTE_USER', trustRemoteGroups=False, remoteGroupsHeader='REMOTE_GROUPS', remoteGroupsMapping={}, addRemoteUsers=False, defaultReauthenticationTimeout=5, sessionStaleAfter=15)
field api : ApiConfig = ApiConfig(key=None, apps={}, allowCrossOrigin=False)
field appearance : AppearanceConfig = AppearanceConfig(name='', color='default', colorTransparent=False, colorIcon=True, defaultLanguage='_default', showFahrenheitAlso=False, fuzzyTimes=True, closeModalsWithClick=True, showInternalFilename=True, components=ComponentConfig(order=ComponentOrderConfig(navbar=['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'plugin_health_check', 'login'], sidebar=['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files'], tab=['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse'], settings=['section_printer', 'plugin_serial_connector', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support'], usersettings=['access', 'interface'], wizard=['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck'], about=['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager', 'plugin_achievements', 'plugin_achievements_2', 'systeminfo'], generic=[]), disabled=ComponentDisabledConfig(navbar=[], sidebar=[], tab=[], settings=[], usersettings=[], wizard=[], about=[], generic=[])))
field controls : list[CustomControl | CustomControlContainer] = []
field devel : DevelConfig = DevelConfig(stylesheet='css', cache=DevelCacheConfig(enabled=True, preemptive=True), webassets=DevelWebassetsConfig(bundle=True, clean_on_startup=True, minify=True, minify_plugins=False), useFrozenDictForPrinterState=True, showLoadingAnimation=True, sockJsConnectTimeout=30.0, pluginTimings=False, enableRateLimiter=True, enableCsrfProtection=True)
field estimation : EstimationConfig = EstimationConfig(printTime=PrintTimeEstimationConfig(statsWeighingUntil=0.5, validityRange=0.15, forceDumbFromPercent=0.3, forceDumbAfterMin=30.0, stableThreshold=60))
field events : EventsConfig = EventsConfig(enabled=True, subscriptions=[])
field feature : FeatureConfig = FeatureConfig(temperatureGraph=True, sdSupport=True, keyboardControl=True, pollWatched=False, modelSizeDetection=True, rememberFileFolder=False, printStartConfirmation=False, printCancelConfirmation=True, uploadOverwriteConfirmation=True, fileDeleteConfirmation=True, autoUppercaseBlacklist=['M117', 'M118', 'M707', 'M708'], g90InfluencesExtruder=False, enforceReallyUniversalFilenames=False, enableDragDropUpload=True)
field folder : FolderConfig = FolderConfig(uploads=None, timelapse=None, timelapse_tmp=None, logs=None, virtualSd=None, watched=None, plugins=None, slicingProfiles=None, printerProfiles=None, scripts=None, translations=None, generated=None, data=None)
field gcodeAnalysis : GcodeAnalysisConfig = GcodeAnalysisConfig(maxExtruders=10, throttle_normalprio=0.01, throttle_highprio=0.0, throttle_lines=100, runAt='idle', bedZ=0.0)
field plugins : PluginsConfig = PluginsConfig(disabled=[], forced_compatible=[], sorting_order={}, flags={})
field printerConnection : PrinterConnectionConfig = PrinterConnectionConfig(autorefresh=True, autorefreshInterval=1, autoconnect=False, preferred=PreferredConnection(connector='serial', parameters={'port': None, 'baudrate': None}))
field printerParameters : PrinterParametersConfig = PrinterParametersConfig(pauseTriggers=[])
field printerProfiles : PrinterProfilesConfig = PrinterProfilesConfig(default=None)
field scripts : ScriptsConfig = ScriptsConfig(gcode=GcodeScriptsConfig(afterPrinterConnected=None, beforePrinterDisconnected=None, beforePrintStarted=None, afterPrintCancelled="; disable motors\nM84\n\n;disable all heaters\n{% snippet 'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0", afterPrintDone=None, beforePrintPaused=None, afterPrintResumed=None, beforeToolChange=None, afterToolChange=None, snippets={'disable_hotends': '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{ tool }} S0\n{% endfor %}{% endif %}', 'disable_bed': '{% if printer_profile.heatedBed %}M140 S0\n{% endif %}'}))
field server : ServerConfig = ServerConfig(host=None, port=5000, firstRun=True, startOnceInSafeMode=False, ignoreIncompleteStartup=False, seenWizards={}, secretKey=None, heartbeat=900, reverseProxy=ReverseProxyConfig(prefixHeader=None, schemeHeader=None, hostHeader=None, serverHeader=None, portHeader=None, prefixFallback=None, schemeFallback=None, hostFallback=None, serverFallback=None, portFallback=None, trustedProxies=[], trustLocalhostProxies=True), uploads=UploadsConfig(maxSize=1073741824, nameSuffix='name', pathSuffix='path'), maxSize=102400, commands=CommandsConfig(systemShutdownCommand=None, systemRestartCommand=None, serverRestartCommand=None, localPipCommand=None), onlineCheck=OnlineCheckConfig(enabled=None, interval=900, host='1.1.1.1', port=53, name='octoprint.org'), pluginBlacklist=PluginBlacklistConfig(enabled=None, url='https://plugins.octoprint.org/blacklist.json', ttl=900, timeout=3.05), pythonEolCheck=PythonEolCheckConfig(enabled=True, url='https://get.octoprint.org/python-eol', ttl=1440, fallback={'3.7': PythonEolEntry(date='2023-06-27', last_octoprint='1.11.*'), '3.8': PythonEolEntry(date='2024-10-31', last_octoprint=None)}), diskspace=DiskspaceConfig(warning=524288000, critical=209715200), preemptiveCache=PreemptiveCacheConfig(exceptions=[], until=7), ipCheck=IpCheckConfig(enabled=True, trustedSubnets=[]), allowFraming=False, cookies=CookiesConfig(secure=False, samesite='Lax'), allowedLoginRedirectPaths=[])
field slicing : SlicingConfig = SlicingConfig(enabled=True, defaultSlicer=None, defaultProfiles={})
field system : SystemConfig = SystemConfig(actions=[])
field temperature : TemperatureConfig = TemperatureConfig(profiles=[TemperatureProfile(name='ABS', extruder=210, bed=100), TemperatureProfile(name='PLA', extruder=180, bed=60)], cutoff=30, sendAutomatically=False, sendAutomaticallyAfter=1)
field terminalFilters : list[TerminalFilterEntry] = [TerminalFilterEntry(name='Suppress temperature messages', regex='(Send: (N\\d+\\s+)?M105)|(Recv:\\s+(ok\\s+([PBN]\\d+\\s+)*)?([BCLPR]|T\\d*):-?\\d+)'), TerminalFilterEntry(name='Suppress SD status messages', regex='(Send: (N\\d+\\s+)?M27)|(Recv: SD printing byte)|(Recv: Not SD printing)'), TerminalFilterEntry(name='Suppress position messages', regex='(Send:\\s+(N\\d+\\s+)?M114)|(Recv:\\s+(ok\\s+)?X:[+-]?([0-9]*[.])?[0-9]+\\s+Y:[+-]?([0-9]*[.])?[0-9]+\\s+Z:[+-]?([0-9]*[.])?[0-9]+\\s+E\\d*:[+-]?([0-9]*[.])?[0-9]+).*'), TerminalFilterEntry(name='Suppress wait responses', regex='Recv: wait'), TerminalFilterEntry(name='Suppress processing responses', regex='Recv: (echo:\\s*)?busy:\\s*processing')]
field webcam : WebcamConfig = WebcamConfig(webcamEnabled=True, timelapseEnabled=True, ffmpeg=None, ffmpegThreads=1, ffmpegVideoCodec='libx264', bitrate='10000k', watermark=True, ffmpegCommandline='{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"', ffmpegThumbnailCommandline='{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"', timelapse=TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)), cleanTmpAfterDays=7, renderAfterPrintDelay=0, defaultWebcam='classic', snapshotWebcam='classic')
pydantic model octoprint.schema.config.access_control.AccessControlConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field addRemoteUsers : bool = False

If a remote user is not found, add them. Use this only if all users from the remote system can use OctoPrint.

field autologinAs : str | None = None

The name of the user to automatically log on clients originating from localNetworks as. Must be the name of one of your configured users.

field autologinHeadsupAcknowledged : bool = False

Whether the user has acknowledged the heads-up about the importance of a correct reverse proxy configuration in the presence of autologin.

field autologinLocal : bool = False

If set to true, will automatically log on clients originating from any of the networks defined in localNetworks as the user defined in autologinAs.

field checkBasicAuthenticationPassword : bool = True

Whether to also check the password provided through Basic Authentication, if the Basic Authentication header is to be trusted. Disabling this will only match the user name in the Basic Authentication header and login the user without further checks, thus disable with caution.

field defaultReauthenticationTimeout : int = 5

Default timeout after which to require reauthentication by a user for dangerous changes, in minutes. Defaults to 5 minutes. Set to 0 to disable reauthentication requirements (SECURITY IMPACT!).

field groupManager : str = 'octoprint.access.groups.FilebasedGroupManager'

The group manager implementation to use for accessing group information. Currently only a filebased user manager is implemented which stores configured groups in a YAML file (Default: groups.yaml in the default configuration folder).

field groupfile : str | None = None

The YAML group file to use. If left out defaults to groups.yaml in the default configuration folder.

field localNetworks : list[str] = ['127.0.0.0/8', '::1/128']

A list of networks or IPs for which an automatic logon as the user defined in autologinAs will take place. If available OctoPrint will evaluate the X-Forwarded-For HTTP header for determining the client’s IP address. Defaults to anything originating from localhost.

field permissionManager : str = 'octoprint.access.permissions.PermissionManager'

The permission manager implementation to use.

field remoteGroupsHeader : str = 'REMOTE_GROUPS'

Header used by the reverse proxy to convey the authenticated user’s groups.

field remoteGroupsMapping : dict[str, str] = {}

Mapping from groups in the header to groups in OctoPrint.

field remoteUserHeader : str = 'REMOTE_USER'

Header used by the reverse proxy to convey the authenticated user.

field salt : str | None = None

Secret salt used for password hashing. DO NOT TOUCH! If changed you will no longer be able to log in with your existing accounts. Default unset, generated on first run.

field sessionStaleAfter : int = 15

Default time after which to consider a session stale due to no activity and to remove it.

field trustBasicAuthentication : bool = False

Whether to trust Basic Authentication headers. If you have setup Basic Authentication in front of OctoPrint and the user names you use there match OctoPrint accounts, by setting this to true users will be logged into OctoPrint as the user during Basic Authentication. ONLY ENABLE THIS if your OctoPrint instance is only accessible through a connection locked down through Basic Authentication!

field trustRemoteGroups : bool = False

Whether to trust remote groups headers. If you have setup authentication in front of OctoPrint and the groups names you use there match OctoPrint accounts, by setting this to true the user’s groups will be set to the groups provided in the header. ONLY ENABLE THIS if your OctoPrint instance is only accessible through a connection locked down through an authenticating reverse proxy!

field trustRemoteUser : bool = False

Whether to trust remote user headers. If you have setup authentication in front of OctoPrint and the user names you use there match OctoPrint accounts, by setting this to true users will be logged into OctoPrint as the user provided in the header. ONLY ENABLE THIS if your OctoPrint instance is only accessible through a connection locked down through an authenticating reverse proxy!

field userManager : str = 'octoprint.access.users.FilebasedUserManager'

The user manager implementation to use for accessing user information. Currently only a filebased user manager is implemented which stores configured accounts in a YAML file (Default: users.yaml in the default configuration folder).

field userfile : str | None = None

The YAML user file to use. If left out defaults to users.yaml in the default configuration folder.

pydantic model octoprint.schema.config.api.ApiConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field allowCrossOrigin : bool = False

Whether to allow cross origin access to the API or not.

field apps : dict[str, str] = {}
field key : str | None = None

Global API key, deprecated, use User API keys instead. Unset by default, will be generated on first run.

pydantic model octoprint.schema.config.appearance.AppearanceConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field closeModalsWithClick : bool = True
field color : ColorEnum = ColorEnum.default

Use this to color the navigation bar.

field colorIcon : bool = True
field colorTransparent : bool = False

Makes the color of the navigation bar “transparent”. In case your printer uses acrylic for its frame 😉.

field components : ComponentConfig = ComponentConfig(order=ComponentOrderConfig(navbar=['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'plugin_health_check', 'login'], sidebar=['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files'], tab=['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse'], settings=['section_printer', 'plugin_serial_connector', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support'], usersettings=['access', 'interface'], wizard=['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck'], about=['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager', 'plugin_achievements', 'plugin_achievements_2', 'systeminfo'], generic=[]), disabled=ComponentDisabledConfig(navbar=[], sidebar=[], tab=[], settings=[], usersettings=[], wizard=[], about=[], generic=[]))

Configures the order and availability of the UI components.

field defaultLanguage : str = '_default'

Default language of OctoPrint. If left unset OctoPrint will try to match up available languages with the user’s browser settings.

field fuzzyTimes : bool = True
field name : str = ''

Use this to give your OctoPrint instance a name. It will be displayed in the title bar (as “<Name> [OctoPrint]”) and in the navigation bar (as “OctoPrint: <>”)

field showFahrenheitAlso : bool = False
field showInternalFilename : bool = True

Show the internal filename in the files sidebar, if necessary.

class octoprint.schema.config.appearance.ColorEnum(*values)
blue = 'blue'
default = 'default'
green = 'green'
orange = 'orange'
red = 'red'
violet = 'violet'
yellow = 'yellow'
pydantic model octoprint.schema.config.appearance.ComponentConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field disabled : ComponentDisabledConfig = ComponentDisabledConfig(navbar=[], sidebar=[], tab=[], settings=[], usersettings=[], wizard=[], about=[], generic=[])

Disabled components per container. If a component is included here it will not be included in OctoPrint’s UI at all. Note that this might mean that critical functionality will not be available if no replacement is registered.

field order : ComponentOrderConfig = ComponentOrderConfig(navbar=['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'plugin_health_check', 'login'], sidebar=['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files'], tab=['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse'], settings=['section_printer', 'plugin_serial_connector', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support'], usersettings=['access', 'interface'], wizard=['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck'], about=['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager', 'plugin_achievements', 'plugin_achievements_2', 'systeminfo'], generic=[])

Defines the order of the components within their respective containers.

pydantic model octoprint.schema.config.appearance.ComponentDisabledConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field about : list[str] = []

Disabled about dialog items.

field generic : list[str] = []

Disabled generic items.

field navbar : list[str] = []

Disabled navbar items.

field settings : list[str] = []

Disabled settings.

field sidebar : list[str] = []

Disabled sidebar items.

field tab : list[str] = []

Disabled tabs.

field usersettings : list[str] = []

Disabled user settings.

field wizard : list[str] = []

Disabled wizards.

pydantic model octoprint.schema.config.appearance.ComponentOrderConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field about : list[str] = ['about', 'plugin_pi_support', 'supporters', 'authors', 'changelog', 'license', 'thirdparty', 'plugin_pluginmanager', 'plugin_achievements', 'plugin_achievements_2', 'systeminfo']

Order of about dialog items.

field generic : list[str] = []

Order of generic items.

field navbar : list[str] = ['settings', 'systemmenu', 'plugin_announcements', 'plugin_logging_seriallog', 'plugin_logging_plugintimingslog', 'plugin_pi_support', 'plugin_health_check', 'login']

Order of navbar items.

field settings : list[str] = ['section_printer', 'plugin_serial_connector', 'printerprofiles', 'temperatures', 'terminalfilters', 'gcodescripts', 'section_features', 'features', 'webcam', 'accesscontrol', 'plugin_gcodeviewer', 'api', 'plugin_appkeys', 'section_octoprint', 'server', 'folders', 'appearance', 'plugin_logging', 'plugin_pluginmanager', 'plugin_softwareupdate', 'plugin_announcements', 'plugin_eventmanager', 'plugin_backup', 'plugin_tracking', 'plugin_errortracking', 'plugin_pi_support']

Order of settings.

field sidebar : list[str] = ['plugin_firmware_check_warning', 'plugin_firmware_check_info', 'connection', 'state', 'files']

Order of sidebar items.

field tab : list[str] = ['temperature', 'control', 'plugin_gcodeviewer', 'terminal', 'timelapse']

Order of tabs.

field usersettings : list[str] = ['access', 'interface']

Order of user settings.

field wizard : list[str] = ['plugin_softwareupdate_update', 'plugin_backup', 'plugin_corewizard_acl', 'plugin_corewizard_onlinecheck']

Order of wizards.

pydantic model octoprint.schema.config.controls.CustomControl
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field additionalClasses : str | None = None

Additional classes to apply to the button of a command, commands, script or javascript control, other than the default btn. Can be used to visually style the button, e.g. set to btn-danger to turn the button red.

field command : str | None = None

A single GCODE command to send to the printer. Will be rendered as a button which sends the command to the printer upon click. The button text will be the value of the name attribute. Mutually exclusive with commands and script. The rendered button be disabled if the printer is currently offline or printing or alternatively if the requirements defined via the enabled attribute are not met.

field commands : list[str] | None = None

A list of GCODE commands to send to the printer. Will be rendered as a button which sends the commands to the printer upon click. The button text will be the value of the name attribute. Mutually exclusive with command and script. The rendered button will be disabled if the printer is currently offline or printing or alternatively if the requirements defined via the enabled attribute are not met.

field confirm : str | None = None

A text to display to the user to confirm his button press. Can be used with sensitive custom controls like changing EEPROM values in order to prevent accidental clicks. The text will be displayed in a confirmation dialog.

field description : str = ''

An optional description of the control, will be displayed as the tooltip on the button or label for controls which only display output.

field enabled : str | None = None

A JavaScript snippet returning either true or false determining whether the control should be enabled or not. This allows to override the default logic for the enable state of the control (disabled if printer is offline). The JavaScript snippet is eval’d and processed in a context where the control it is part of is provided as local variable data and the ControlViewModel is available as self.

field input : list[CustomControlInput] | None = []

A list of definitions of input parameters for a command or commands, to be rendered as additional input fields. command/commands may contain placeholders to be replaced by the values obtained from the user for the defined input fields.

field javascript : str | None = None

A JavaScript snippet to be executed when the button rendered for command or commands is clicked. This allows to override the direct sending of the command or commands to the printer with more sophisticated behaviour. The JavaScript snippet is eval’d and processed in a context where the control it is part of is provided as local variable data and the ControlViewModel is available as self.

field name : str [Required]

The name of the control, will be displayed either on the button if it’s a control sending a command or as a label for controls which only display output.

field regex : str | None = None

A [regular expression](https://docs.python.org/3/library/re.html#regular-expression-syntax) to match against lines received from the printer to retrieve information from it (e.g. specific output). Together with template this allows rendition of received data from the printer within the UI.

field script : str | None = None

The name of a full blown [GCODE script]() to send to the printer. Will be rendered as a button which sends the script to the printer upon click. The button text will be the value of the name attribute. Mutually exclusive with command and commands. The rendered button will be disabled if the printer is currently offline or printing or alternatively if the requirements defined via the enabled attribute are not met. Values of input parameters will be available in the template context under the parameter variable (e.g. an input parameter speed will be available in the script template as parameter.speed). On top of that all other variables defined in the [GCODE template context]() will be available.

field template : str | None = None

A template to use for rendering the match of regex. May contain placeholders in [Python Format String Syntax](https://docs.python.org/3/library/string.html#formatstrings) for either named groups within the regex (e.g. Temperature: {temperature} for a regex T:s*(?P<temperature>d+(.d*)) or positional groups within the regex (e.g. Position: X={0}, Y={1}, Z={2}, E={3} for a regex X:([0-9.]+) Y:([0-9.]+) Z:([0-9.]+) E:([0-9.]+)).

pydantic model octoprint.schema.config.controls.CustomControlContainer
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field children : list[CustomControlContainer | CustomControl] = []

A list of children controls or containers contained within this container.

field collapsed : bool = False

Whether the container should start out collapsed by default.

field layout : LayoutEnum = LayoutEnum.vertical

The layout to use for laying out the contained children, either from top to bottom (vertical) or from left to right (horizontal).

field name : str | None = None

A name to display above the container, basically a section header.

pydantic model octoprint.schema.config.controls.CustomControlInput
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field default : str | int | float | bool [Required]

Default value for the input field.

field name : str [Required]

Name to display for the input field.

field parameter : str [Required]

Internal parameter name for the input field, used as a placeholder in command/commands.

field slider : CustomControlSlider | None = None

If this attribute is included, instead of an input field a slider control will be rendered.

pydantic model octoprint.schema.config.controls.CustomControlSlider
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field max : int = 255

Maximum value of the slider.

field min : int = 0

Minimum value of the slider.

field step : int = 1

Step size per slider tick.

class octoprint.schema.config.controls.LayoutEnum(*values)
horizontal = 'horizontal'
horizontal_grid = 'horizontal_grid'
vertical = 'vertical'
pydantic model octoprint.schema.config.devel.DevelCacheConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field enabled : bool = True

Whether to enable caching. Defaults to true. Setting it to false will cause the UI to always be fully rerendered on request to / on the server.

field preemptive : bool = True

Whether to enable the preemptive cache.

pydantic model octoprint.schema.config.devel.DevelConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field cache : DevelCacheConfig = DevelCacheConfig(enabled=True, preemptive=True)

Settings for OctoPrint’s internal caching.

field enableCsrfProtection : bool = True

Enable or disable the CSRF protection. Careful, disabling this reduces security.

field enableRateLimiter : bool = True

Enable or disable the rate limiter. Careful, disabling this reduces security.

field pluginTimings : bool = False
field showLoadingAnimation : bool = True

Enable or disable the loading animation.

field sockJsConnectTimeout : float = 30
field stylesheet : StylesheetEnum = StylesheetEnum.css

Settings for stylesheet preference. OctoPrint will prefer to use the stylesheet type specified here. Usually (on a production install) that will be the compiled css (default). Developers may specify less here too.

field useFrozenDictForPrinterState : bool = True
field webassets : DevelWebassetsConfig = DevelWebassetsConfig(bundle=True, clean_on_startup=True, minify=True, minify_plugins=False)

Settings for OctoPrint’s web asset merging and minifying.

pydantic model octoprint.schema.config.devel.DevelWebassetsConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field bundle : bool = True

If set to true, OctoPrint will merge all JS, all CSS and all Less files into one file per type to reduce request count. Setting it to false will load all assets individually. Note: if this is set to false, no minification will take place regardless of the minify setting.

field clean_on_startup : bool = True

Whether to delete generated web assets on server startup (forcing a regeneration).

field minify : bool = True

If set to true, OctoPrint will the core and library javascript assets. Note: if bundle is set to false, no minification will take place either.

field minify_plugins : bool = False

If set to true, OctoPrint will also minify the third party plugin javascript assets. Note: if bundle or minify are set to false, no minification of the plugin assets will take place either.

class octoprint.schema.config.devel.StylesheetEnum(*values)
css = 'css'
less = 'less'
pydantic model octoprint.schema.config.estimation.EstimationConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field printTime : PrintTimeEstimationConfig = PrintTimeEstimationConfig(statsWeighingUntil=0.5, validityRange=0.15, forceDumbFromPercent=0.3, forceDumbAfterMin=30.0, stableThreshold=60)

Parameters for the print time estimation during an ongoing print job.

pydantic model octoprint.schema.config.estimation.PrintTimeEstimationConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field forceDumbAfterMin : float = 30.0

If no estimate could be calculated until this many minutes into the print and no statistical data is available, use dumb linear estimate.

field forceDumbFromPercent : float = 0.3

If no estimate could be calculated until this percentage and no statistical data is available, use dumb linear estimate. Value between 0 and 1.0.

field stableThreshold : int = 60

Average fluctuation between individual calculated estimates to consider in stable range. Seconds of difference.

field statsWeighingUntil : float = 0.5

Until which percentage to do a weighted mixture of statistical duration (analysis or past prints) with the result from the calculated estimate if that’s already available. Utilized to compensate for the fact that the earlier in a print job, the least accuracy even a stable calculated estimate provides.

field validityRange : float = 0.15

Range the assumed percentage (based on current estimated statistical, calculated or mixed total vs elapsed print time so far) needs to be around the actual percentage for the result to be used.

pydantic model octoprint.schema.config.events.EventSubscription
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field command : str [Required]

The command to execute when the event is triggered, either a GCODE or a system command.

field debug : bool = False

If set to true, OctoPrint will log the command after performing all placeholder replacements.

field enabled : bool = True

Whether the event subscription should be enabled.

field event : str [Required]

The event to subscribe to.

field name : str | None = None

The event name to show on the UI

field type : SubscriptionTypeEnum [Required]

The type of the command.

pydantic model octoprint.schema.config.events.EventsConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field enabled : bool = True

Whether event subscriptions should be enabled or not.

field subscriptions : list[EventSubscription] = []

A list of event subscriptions.

class octoprint.schema.config.events.SubscriptionTypeEnum(*values)
gcode = 'gcode'
system = 'system'
pydantic model octoprint.schema.config.feature.FeatureConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field autoUppercaseBlacklist : list[str] = ['M117', 'M118', 'M707', 'M708']

Commands that should never be auto-uppercased when sent to the printer through the Terminal tab.

field enableDragDropUpload : bool = True

Enable drag and drop upload overlay

field enforceReallyUniversalFilenames : bool = False

Replace all special characters and spaces with text equivalent to make them universally compatible. Most OS filesystems work fine with unicode characters, but just in case you can revert to the older behaviour by setting this to true.

field fileDeleteConfirmation : bool = True

Whether to show a confirmation when about to delete a file

field g90InfluencesExtruder : bool = False

Whether G90/G91 also influence absolute/relative mode of extruders.

field keyboardControl : bool = True

Whether to enable the keyboard control feature in the control tab.

field modelSizeDetection : bool = True

Whether to enable model size detection and warning (true) or not (false).

field pollWatched : bool = False

Whether to actively poll the watched folder (true) or to rely on the OS’s file system notifications instead (false).

field printCancelConfirmation : bool = True

Whether to show a confirmation on print cancelling (true) or not (false)

field printStartConfirmation : bool = False

Whether to show a confirmation on print start (true) or not (false)

field rememberFileFolder : bool = False

Whether to remember the selected folder on the file manager.

field sdSupport : bool = True

Specifies whether support for SD printing and file management should be enabled.

field temperatureGraph : bool = True

Whether to enable the temperature graph in the UI or not.

field uploadOverwriteConfirmation : bool = True

Whether to show a confirmation when about to overwrite an uploaded file

pydantic model octoprint.schema.config.folder.FolderConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field data : str | None = None

Absolute path where to store additional data. Defaults to the data folder in OctoPrint’s base folder.

field generated : str | None = None

Absolute path where to store generated files. Defaults to the generated folder in OctoPrint’s base folder.

field logs : str | None = None

Absolute path where to store logs. Defaults to the logs folder in OctoPrint’s base folder.

field plugins : str | None = None

Absolute path where to locate and install single file plugins. Defaults to the plugins folder in OctoPrint’s base folder.

field printerProfiles : str | None = None

Absolute path where to store printer profiles. Defaults to the printerProfiles folder in OctoPrint’s base folder.

field scripts : str | None = None

Absolute path where to store (GCODE) scripts. Defaults to the scripts folder in OctoPrint’s base folder.

field slicingProfiles : str | None = None

Absolute path where to store slicing profiles. Defaults to the slicingProfiles folder in OctoPrint’s base folder.

field timelapse : str | None = None

Absolute path where to store finished timelase recordings. Defaults to the timelapse folder in OctoPrint’s base folder.

field timelapse_tmp : str | None = None

Absolute path where to store temporary timelapse snapshots. Defaults to the timelapse/tmp folder in OctoPrint’s base folder.

field translations : str | None = None

Absolute path where to store additional translations. Defaults to the translations folder in OctoPrint’s base folder.

field uploads : str | None = None

Absolute path where to store gcode uploads. Defaults to the uploads folder in OctoPrint’s base folder.

field virtualSd : str | None = None

Absolute path where to store the virtual printer’s SD card files. Defaults to the virtualSd folder in OctoPrint’s base folder.

field watched : str | None = None

Absolute path to the watched folder. Defaults to the watched folder in OctoPrint’s base folder.

pydantic model octoprint.schema.config.gcode_analysis.GcodeAnalysisConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field bedZ : float = 0.0

Z position considered the location of the bed.

field maxExtruders : int = 10

Maximum number of extruders to support/to sanity check for.

field runAt : RunAtEnum = RunAtEnum.idle

Whether to run the analysis only when idle (not printing), regardless of printing state or never.

field throttle_highprio : float = 0.0

Pause between each processed GCODE line batch in high priority mode (e.g. on fresh uploads), seconds.

field throttle_lines : int = 100

GCODE line batch size.

field throttle_normalprio : float = 0.01

Pause between each processed GCODE line batch in normal priority mode, seconds.

class octoprint.schema.config.gcode_analysis.RunAtEnum(*values)
always = 'always'
idle = 'idle'
never = 'never'
pydantic model octoprint.schema.config.plugins.PluginsConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field disabled : list[str] = [] (alias '_disabled')

Identifiers of installed but disabled plugins.

field flags : dict[str, list[str]] = {} (alias '_flags')

Configured flags for plugins by plugin identifier.

field forced_compatible : list[str] = [] (alias '_forcedCompatible')

Identifiers of plugins for which python compatibility information will be ignored and the plugin considered compatible in any case. Only for development, do NOT use in production.

field sorting_order : dict[str, dict[str, int]] = {} (alias '_sortingOrder')

Custom sorting of hooks and implementations provided by plugins. Two-tiered dictionary structure, plugin identifier mapping to a dictionary of order overrides mapped by sorting context/hook name.

pydantic model octoprint.schema.config.printer_parameters.PrinterParametersConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field pauseTriggers : list[str] = []
pydantic model octoprint.schema.config.printer_profiles.PrinterProfilesConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field default : str | None = None

Name of the printer profile to default to.

pydantic model octoprint.schema.config.scripts.GcodeScriptsConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field afterPrintCancelled : str | None = "; disable motors\nM84\n\n;disable all heaters\n{% snippet 'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0"
field afterPrintDone : str | None = None
field afterPrintResumed : str | None = None
field afterPrinterConnected : str | None = None
field afterToolChange : str | None = None
field beforePrintPaused : str | None = None
field beforePrintStarted : str | None = None
field beforePrinterDisconnected : str | None = None
field beforeToolChange : str | None = None
field snippets : dict[str, str] = {'disable_bed': '{% if printer_profile.heatedBed %}M140 S0\n{% endif %}', 'disable_hotends': '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{ tool }} S0\n{% endfor %}{% endif %}'}
pydantic model octoprint.schema.config.scripts.ScriptsConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field gcode : GcodeScriptsConfig = GcodeScriptsConfig(afterPrinterConnected=None, beforePrinterDisconnected=None, beforePrintStarted=None, afterPrintCancelled="; disable motors\nM84\n\n;disable all heaters\n{% snippet 'disable_hotends' %}\n{% snippet 'disable_bed' %}\n;disable fan\nM106 S0", afterPrintDone=None, beforePrintPaused=None, afterPrintResumed=None, beforeToolChange=None, afterToolChange=None, snippets={'disable_hotends': '{% if printer_profile.extruder.sharedNozzle %}M104 T0 S0\n{% else %}{% for tool in range(printer_profile.extruder.count) %}M104 T{{ tool }} S0\n{% endfor %}{% endif %}', 'disable_bed': '{% if printer_profile.heatedBed %}M140 S0\n{% endif %}'})
pydantic model octoprint.schema.config.server.CommandsConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field localPipCommand : str | None = None

pip command associated with OctoPrint, used for installing plugins and updates, if unset (default) the command will be autodetected based on the current python executable - unless you have a really special setup this is the right way to do it and there should be no need to ever touch this setting.

field serverRestartCommand : str | None = None

Command to restart OctoPrint.

field systemRestartCommand : str | None = None

Command to restart the system OctoPrint is running on.

field systemShutdownCommand : str | None = None

Command to shut down the system OctoPrint is running on.

pydantic model octoprint.schema.config.server.CookiesConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field samesite : SameSiteEnum | None = SameSiteEnum.lax

SameSite setting to use on the cookies. Possible values are None, Lax and Strict. Defaults to Lax. Be advised that if forced unset, this has security implications as many browsers now default to Lax unless you configure cookies to be set with Secure flag set, explicitly set SameSite setting here and also serve OctoPrint over https. The Lax setting is known to cause with embedding OctoPrint in frames. See also [“Feature: Cookies default to SameSite=Lax”](https://www.chromestatus.com/feature/5088147346030592), [“Feature: Reject insecure SameSite=None cookies”](https://www.chromestatus.com/feature/5633521622188032) and [issue #3482](https://github.com/OctoPrint/OctoPrint/issues/3482).

field secure : bool = False

Whether to set the Secure flag to true on cookies. Only set to true if you are running OctoPrint behind a reverse proxy taking care of SSL termination.

pydantic model octoprint.schema.config.server.DiskspaceConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field critical : int = 209715200

Threshold (bytes) after which to consider disk space becoming critical, defaults to 200MB.

field warning : int = 524288000

Threshold (bytes) after which to consider disk space becoming sparse, defaults to 500MB.

pydantic model octoprint.schema.config.server.IpCheckConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field enabled : bool = True

Whether to enable the check.

field trustedSubnets : list[str] = []

Additional non-local subnets to consider trusted, in CIDR notation, e.g. 192.168.1.0/24.

pydantic model octoprint.schema.config.server.OnlineCheckConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field enabled : bool | None = None

Whether the online check is enabled. Ships unset, the user will be asked to make a decision as part of the setup wizard.

field host : str = '1.1.1.1'

DNS host against which to check, defaults to Cloudflare’s DNS.

field interval : int = 900

Interval in which to check for online connectivity (in seconds), defaults to 15 minutes.

field name : str = 'octoprint.org'

Host name for which to check name resolution, defaults to OctoPrint’s main domain.

field port : int = 53

DNS port against which to check, defaults to the standard DNS port.

pydantic model octoprint.schema.config.server.PluginBlacklistConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field enabled : bool | None = None

Whether use of the blacklist is enabled. If unset, the user will be asked to make a decision as part of the setup wizard.

field timeout : float = 3.05

Timeout for fetching the blacklist, in seconds (default: 3.05 seconds).

field ttl : int = 900

Time to live of the cached blacklist, in seconds (default: 15 minutes).

field url : str = 'https://plugins.octoprint.org/blacklist.json'

The URL from which to fetch the blacklist.

pydantic model octoprint.schema.config.server.PreemptiveCacheConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field exceptions : list[str] = []

Which server paths to exclude from the preemptive cache, e.g. /some/path.

field until : int = 7

How many days to leave unused entries in the preemptive cache config.

pydantic model octoprint.schema.config.server.PythonEolCheckConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field enabled : bool = True

Whether to enable the Python EOL warning.

field fallback : dict[str, PythonEolEntry] = {'3.7': {'date': '2023-06-27', 'last_octoprint': '1.11.*'}, '3.8': {'date': '2024-10-31'}}

Fallback data for Python EOL data, in case the online check fails.

field ttl : int = 1440

Time to live of the cached Python EOL data, in minutes (default: 24 hours).

field url : str = 'https://get.octoprint.org/python-eol'

URL to fetch the Python EOL data from.

pydantic model octoprint.schema.config.server.PythonEolEntry
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field date : str [Required]

The date when the Python version will reach EOL, in format YYYY-MM-DD.

field last_octoprint : str | None = None

The last OctoPrint version that will support this Python version, optional.

pydantic model octoprint.schema.config.server.ReverseProxyConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field hostFallback : str | None = None

Use this option to define an optional forced host under which to run OctoPrint. This should only be needed if you want to run OctoPrint behind a reverse proxy with a different hostname than OctoPrint itself but can’t configure said reverse proxy to send a host HTTP header (X-Forwarded-Host by default, see above) with forwarded requests.

field hostHeader : str | None = None

The request header from which to determine the host under which OctoPrint is served by the reverse proxy.

field portFallback : str | None = None
field portHeader : str | None = None
field prefixFallback : str | None = None

Use this option to define an optional URL prefix (with a leading /, so absolute to your server’s root) under which to run OctoPrint. This should only be needed if you want to run OctoPrint behind a reverse proxy under a different root endpoint than / and can’t configure said reverse proxy to send a prefix HTTP header (X-Script-Name by default, see above) with forwarded requests.

field prefixHeader : str | None = None

The request header from which to determine the URL prefix under which OctoPrint is served by the reverse proxy.

field schemeFallback : str | None = None

Use this option to define an optional forced scheme (http or https) under which to run OctoPrint. This should only be needed if you want to run OctoPrint behind a reverse proxy that also does HTTPS determination but can’t configure said reverse proxy to send a scheme HTTP header (X-Scheme by default, see above) with forwarded requests.

field schemeHeader : str | None = None

The request header from which to determine the scheme (http or https) under which a specific request to OctoPrint was made to the reverse proxy.

field serverFallback : str | None = None
field serverHeader : str | None = None
field trustLocalhostProxies : bool = True

Whether to trust the local machine to act as a reverse proxy. Defaults to true, will ensure that 127.0.0.0/8 and ::1 will always be considered to be included in trustedProxies. If you want to explicitly disable trusting the local machine, set this to false and don’t include the local machine in trustedProxies (as in, don’t include “127.0.0.1”, “127.0.0.0/8” or “::1”).

field trustedProxies : list[str] = []

List of trusted proxy servers for which to ignore the IP address when trying to determine the connecting client’s IP address. A reverse proxy on the same machine as OctoPrint (e.g. as found on OctoPi) will be handled correctly by default through trustLocalhostProxies, further proxies in front of that you’ll have to add yourself here.

class octoprint.schema.config.server.SameSiteEnum(*values)
lax = 'Lax'
none = 'None'
strict = 'Strict'
pydantic model octoprint.schema.config.server.ServerConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field allowFraming : bool = False

Whether to allow OctoPrint to be embedded in a frame or not. Note that depending on your setup you might have to set SameSite to None, Secure to true and serve OctoPrint through a reverse proxy that enables https for cookies and thus logging in to work.

field allowedLoginRedirectPaths : list[str] = []

List of paths that are allowed to be used as redirect targets for the login page, in addition to the default ones (/, /recovery/ and /plugin/appkeys/auth/)

field commands : CommandsConfig = CommandsConfig(systemShutdownCommand=None, systemRestartCommand=None, serverRestartCommand=None, localPipCommand=None)

Commands to restart/shutdown octoprint or the system it’s running on.

field cookies : CookiesConfig = CookiesConfig(secure=False, samesite='Lax')

Settings for further configuration of the cookies that OctoPrint sets (login, remember me, …).

field diskspace : DiskspaceConfig = DiskspaceConfig(warning=524288000, critical=209715200)

Settings of when to display what disk space warning.

field firstRun : bool = True

If this option is true, OctoPrint will show the First Run wizard and set the setting to false after that completes.

field heartbeat : int = 900
field host : str | None = None

Use this option to define the host to which to bind the server. If unset, OctoPrint will attempt to bind on all available interfaces, IPv4 and v6 unless either is disabled.

field ignoreIncompleteStartup : bool = False

Set this to true to make OctoPrint ignore incomplete startups. Helpful for development.

field ipCheck : IpCheckConfig = IpCheckConfig(enabled=True, trustedSubnets=[])

Configuration of the client IP check to warn about connections from external networks.

field maxSize : int = 102400

Maximum size of requests other than file uploads in bytes, defaults to 100KB.

field onlineCheck : OnlineCheckConfig = OnlineCheckConfig(enabled=None, interval=900, host='1.1.1.1', port=53, name='octoprint.org')

Configuration of the regular online connectivity check.

field pluginBlacklist : PluginBlacklistConfig = PluginBlacklistConfig(enabled=None, url='https://plugins.octoprint.org/blacklist.json', ttl=900, timeout=3.05)

Configuration of the plugin blacklist.

field port : int = 5000

Use this option to define the port to which to bind the server.

field preemptiveCache : PreemptiveCacheConfig = PreemptiveCacheConfig(exceptions=[], until=7)

Configuration of the preemptive cache.

field pythonEolCheck : PythonEolCheckConfig = PythonEolCheckConfig(enabled=True, url='https://get.octoprint.org/python-eol', ttl=1440, fallback={'3.7': PythonEolEntry(date='2023-06-27', last_octoprint='1.11.*'), '3.8': PythonEolEntry(date='2024-10-31', last_octoprint=None)})

Configuration of the Python EOL warning.

field reverseProxy : ReverseProxyConfig = ReverseProxyConfig(prefixHeader=None, schemeHeader=None, hostHeader=None, serverHeader=None, portHeader=None, prefixFallback=None, schemeFallback=None, hostFallback=None, serverFallback=None, portFallback=None, trustedProxies=[], trustLocalhostProxies=True)

Settings if OctoPrint is running behind a reverse proxy (haproxy, nginx, apache, …) that doesn’t correctly set the [required headers](https://community.octoprint.org/t/reverse-proxy-configuration-examples/1107). These are necessary in order to make OctoPrint generate correct external URLs so that AJAX requests and download URLs work, and so that client IPs are read correctly.

field secretKey : str | None = None

Secret key for encrypting cookies and such, randomly generated on first run.

field seenWizards : dict[str, str] = {}
field startOnceInSafeMode : bool = False

If this option is true, OctoPrint will enable safe mode on the next server start and reset the setting to false

field uploads : UploadsConfig = UploadsConfig(maxSize=1073741824, nameSuffix='name', pathSuffix='path')

Settings for file uploads to OctoPrint, such as maximum allowed file size and header suffixes to use for streaming uploads. OctoPrint does some nifty things internally in order to allow streaming of large file uploads to the application rather than just storing them in memory. For that it needs to do some rewriting of the incoming upload HTTP requests, storing the uploaded file to a temporary location on disk and then sending an internal request to the application containing the original filename and the location of the temporary file.

pydantic model octoprint.schema.config.server.UploadsConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field maxSize : int = 1073741824

Maximum size of uploaded files in bytes, defaults to 1GB.

field nameSuffix : str = 'name'

Suffix used for storing the filename in the file upload headers when streaming uploads.

field pathSuffix : str = 'path'

Suffix used for storing the path to the temporary file in the file upload headers when streaming uploads.

pydantic model octoprint.schema.config.slicing.SlicingConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field defaultProfiles : dict[str, str] = {}

Default slicing profiles per slicer, maps slicer identifier to profile identifier.

field defaultSlicer : str | None = None

Default slicer to use.

field enabled : bool = True

Whether to enable slicing support or not.

pydantic model octoprint.schema.config.system.ActionConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field action : str [Required]

The identifier used internally to identify the action. Set to divider to generate a divider in the menu.

field async_ : bool = False (alias 'async')

Whether to run the command asynchronously.

field command : str | None = None

The command to execute when the action is selected. Must be set if the action is not a divider.

field confirm : str | None = None

An optional confirmation message to show before executing the command.

field fresh_credentials : bool | None = False

Whether to require a fresh credential check for executing the command.

field name : str | None = None

The name of the action that will be shown on the menu. Must be set if the action is not a divider.

pydantic model octoprint.schema.config.system.SystemConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field actions : list[ActionConfig] = []

A list of system actions to show in the UI.

pydantic model octoprint.schema.config.temperature.TemperatureConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field cutoff : int = 30

Cut off time for the temperature data, in minutes.

field profiles : list[TemperatureProfile] = [TemperatureProfile(name='ABS', extruder=210, bed=100), TemperatureProfile(name='PLA', extruder=180, bed=60)]

Temperature profiles to offer in the UI for quick pre-heating.

field sendAutomatically : bool = False

Whether to send new temperature settings made in the UI automatically.

field sendAutomaticallyAfter : int = 1

After what time to send the new temperature settings automatically, in seconds.

pydantic model octoprint.schema.config.temperature.TemperatureProfile
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field bed : int [Required]

Bed temperature to set with the profile.

field extruder : int [Required]

Hotend temperature to set with the profile.

field name : str [Required]

Name of the profile.

pydantic model octoprint.schema.config.terminalfilters.TerminalFilterEntry
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field name : str [Required]

The name of the filter.

field regex : str [Required]

The regular expression to match. Use [JavaScript regular expressions](https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions).

class octoprint.schema.config.webcam.RenderAfterPrintEnum(*values)
always = 'always'
failure = 'failure'
off = 'off'
success = 'success'
pydantic model octoprint.schema.config.webcam.TimelapseConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field fps : int = 25

The framerate at which to render the movie.

field options : TimelapseOptions = TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None)

Additional options depending on the timelapse type.

field postRoll : int = 0

The number of seconds in the rendered video to add after a finished print. The exact way how the additional images will be recorded depends on timelapse type. zchange timelapses will take one final picture and add it fps * postRoll times. timed timelapses continue to record just like at the beginning, so the recording will continue another fps * postRoll * interval seconds. This behaviour can be overridden by setting the capturePostRoll option to false, in which case the post roll will be created identically to zchange mode.

field renderAfterPrint : RenderAfterPrintEnum = RenderAfterPrintEnum.always

Determines whether rendering the timelapse should be done automatically after the print is finished. This can be done always, only after successful prints, only after failed prints, or never.

field type : TimelapseTypeEnum = TimelapseTypeEnum.off

The timelapse type.

pydantic model octoprint.schema.config.webcam.TimelapseOptions
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field capturePostRoll : bool | None = None

timed timelapses only: Whether to capture the snapshots for the post roll (true) or just copy the last captured snapshot from the print over and over again (false).

field interval : int | None = None

timed timelapses only: The interval which to leave between images in seconds.

field retractionZHop : float | None = None

zchange timelapses only: z-hop height during retractions to ignore for capturing snapshots.

class octoprint.schema.config.webcam.TimelapseTypeEnum(*values)
off = 'off'
timed = 'timed'
zchange = 'zchange'
pydantic model octoprint.schema.config.webcam.WebcamConfig
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field bitrate : str = '10000k'

The bitrate to use for rendering the timelapse video. This gets directly passed to ffmpeg.

field cleanTmpAfterDays : int = 7

After how many days unrendered timelapses will be deleted.

field defaultWebcam : str = 'classic'

The name of the default webcam

field ffmpeg : str | None = None

Path to ffmpeg binary to use for creating timelapse recordings. Timelapse support will be disabled if not set.

field ffmpegCommandline : str = '{ffmpeg} -framerate {fps} -i "{input}" -vcodec {videocodec} -threads {threads} -b:v {bitrate} -f {containerformat} -y {filters} "{output}"'

The full commandline to use for rendering timelapse recordings through ffmpeg. Supports the following placeholders:

  • ffmpeg: the ffmpeg command as defined under webcam.ffmpeg

  • fps: the fps setting as defined by the timelapse configuration

  • input: the path to the input files

  • videocodec: the video codec to use, as defined in webcam.ffmpegVideoCodec

  • threads: the number of threads to use, as defined in webcam.ffmpegThreads

  • bitrate: the bitrate to use, as defined in webcam.bitrate

  • containerformat: the container format to use, based on the selected codec

  • filters: the filter chain

  • output: the path to the output file

The full commandline to use for rendering timelapse recordings through ffmpeg. Supports the following placeholders:

  • ffmpeg: the ffmpeg command as defined under webcam.ffmpeg

  • fps: the fps setting as defined by the timelapse configuration

  • input: the path to the input files

  • videocodec: the video codec to use, as defined in webcam.ffmpegVideoCodec

  • threads: the number of threads to use, as defined in webcam.ffmpegThreads

  • bitrate: the bitrate to use, as defined in webcam.bitrate

  • containerformat: the container format to use, based on the selected codec

  • filters: the filter chain

  • output: the path to the output file

field ffmpegThreads : int = 1

Number of how many threads to instruct ffmpeg to use for encoding.

field ffmpegThumbnailCommandline : str = '{ffmpeg} -sseof -1 -i "{input}" -update 1 -q:v 0.7 "{output}"'

The full commandline to use for generating thumbnails through ffmpeg. Supports the following placeholders:

  • ffmpeg: the ffmpeg command as defined under webcam.ffmpeg

  • input: the path to the input file

  • output: the path to the output file

The full commandline to use for generating thumbnails through ffmpeg. Supports the following placeholders:

  • ffmpeg: the ffmpeg command as defined under webcam.ffmpeg

  • input: the path to the input file

  • output: the path to the output file

field ffmpegVideoCodec : str = 'libx264'

Videocodec to be used for encoding.

field renderAfterPrintDelay : int = 0

Delay to wait for after print end before rendering timelapse, in seconds. If another print gets started during this time, the rendering will be postponed.

field snapshotWebcam : str = 'classic'

The name of the default webcam to use for snapshots

field timelapse : TimelapseConfig = TimelapseConfig(type='off', fps=25, postRoll=0, renderAfterPrint='always', options=TimelapseOptions(interval=None, capturePostRoll=None, retractionZHop=None))

The default timelapse settings.

field timelapseEnabled : bool = True

Use this option to enable timelapse support via snapshot, e.g. via MJPG-Streamer. Timelapse support will be disabled if not set.

field watermark : bool = True

Whether to include a “created with OctoPrint” watermark in the generated timelapse recordings.

field webcamEnabled : bool = True

Use this option to enable display of a webcam stream in the UI, e.g. via MJPG-Streamer. Webcam support will be disabled if not set.

octoprint.schema.webcam

class octoprint.schema.webcam.RatioEnum(*values)
four_three = '4:3'
sixteen_nine = '16:9'
pydantic model octoprint.schema.webcam.Webcam
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field canSnapshot : bool = False

Whether this webcam can take a snapshot.

field compat : WebcamCompatibility | None = None

A compatibility configuration to allow older clients to make use of this webcam

field displayName : str [Required]

Displayable name for this webcam

field extras : dict = {}

Unstructured data describing this webcam

field flipH : bool = False

Whether to flip the webcam horizontally.

field flipV : bool = False

Whether to flip the webcam vertically.

field name : str [Required]

Identifier of this webcam

field rotate90 : bool = False

Whether to rotate the webcam 90° counter clockwise.

field snapshotDisplay : str = None

Human readable information about how a snapshot is captured or a HTTP URL from which the snapshot is loaded (optional, only for user reference)

pydantic model octoprint.schema.webcam.WebcamCompatibility
Config:
  • use_enum_values: bool = True

  • validate_default: bool = True

field cacheBuster : bool = False

Whether the URL should be randomized to bust caches

field snapshot : str = None

The URL to get the snapshot from

field snapshotSslValidation : bool = True

Whether to validate SSL certificates when retrieving a snapshot

field snapshotTimeout : int = 5

The timeout when retrieving snapshots

field stream : str [Required]

The URL to get an MJPEG stream from

field streamRatio : RatioEnum = RatioEnum.sixteen_nine

The stream’s native aspect ratio

field streamTimeout : int = 5

The timeout of the stream in seconds

field streamWebrtcIceServers : list[str] = ['stun:stun.l.google.com:19302']

The WebRTC STUN and TURN servers