curl --request PATCH \
--url http://127.0.0.1:{port}/modes/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"preset": "<string>",
"language": "<string>",
"model": "<string>",
"punctuation": true,
"capitalization": true,
"profanityFilter": true,
"customInstructions": "<string>",
"userSystemPrompt": "<string>",
"isDefault": true,
"sortOrder": -1,
"languageModel": "<string>",
"cloudTranscriptionModel": "<string>",
"cloudProvider": "<string>",
"postProcessingMode": 1,
"postProcessingProvider": "<string>",
"englishSpelling": "<string>",
"useStreamingTranscription": true,
"cloudAccuracyTier": "<string>",
"removeTrailingPeriod": true,
"enableScreenOCR": true,
"geminiCustomPrompt": "<string>",
"cloudPostProcessingModel": "<string>",
"cloudTranscriptionDomain": "<string>",
"localEngine": "<string>",
"localParakeetModel": "<string>",
"localPostProcessingModel": "<string>",
"customVocabulary": [
"<string>"
],
"providerType": "<string>"
}
'import requests
url = "http://127.0.0.1:{port}/modes/{id}"
payload = {
"name": "<string>",
"preset": "<string>",
"language": "<string>",
"model": "<string>",
"punctuation": True,
"capitalization": True,
"profanityFilter": True,
"customInstructions": "<string>",
"userSystemPrompt": "<string>",
"isDefault": True,
"sortOrder": -1,
"languageModel": "<string>",
"cloudTranscriptionModel": "<string>",
"cloudProvider": "<string>",
"postProcessingMode": 1,
"postProcessingProvider": "<string>",
"englishSpelling": "<string>",
"useStreamingTranscription": True,
"cloudAccuracyTier": "<string>",
"removeTrailingPeriod": True,
"enableScreenOCR": True,
"geminiCustomPrompt": "<string>",
"cloudPostProcessingModel": "<string>",
"cloudTranscriptionDomain": "<string>",
"localEngine": "<string>",
"localParakeetModel": "<string>",
"localPostProcessingModel": "<string>",
"customVocabulary": ["<string>"],
"providerType": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
preset: '<string>',
language: '<string>',
model: '<string>',
punctuation: true,
capitalization: true,
profanityFilter: true,
customInstructions: '<string>',
userSystemPrompt: '<string>',
isDefault: true,
sortOrder: -1,
languageModel: '<string>',
cloudTranscriptionModel: '<string>',
cloudProvider: '<string>',
postProcessingMode: 1,
postProcessingProvider: '<string>',
englishSpelling: '<string>',
useStreamingTranscription: true,
cloudAccuracyTier: '<string>',
removeTrailingPeriod: true,
enableScreenOCR: true,
geminiCustomPrompt: '<string>',
cloudPostProcessingModel: '<string>',
cloudTranscriptionDomain: '<string>',
localEngine: '<string>',
localParakeetModel: '<string>',
localPostProcessingModel: '<string>',
customVocabulary: ['<string>'],
providerType: '<string>'
})
};
fetch('http://127.0.0.1:{port}/modes/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "http://127.0.0.1:{port}/modes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'preset' => '<string>',
'language' => '<string>',
'model' => '<string>',
'punctuation' => true,
'capitalization' => true,
'profanityFilter' => true,
'customInstructions' => '<string>',
'userSystemPrompt' => '<string>',
'isDefault' => true,
'sortOrder' => -1,
'languageModel' => '<string>',
'cloudTranscriptionModel' => '<string>',
'cloudProvider' => '<string>',
'postProcessingMode' => 1,
'postProcessingProvider' => '<string>',
'englishSpelling' => '<string>',
'useStreamingTranscription' => true,
'cloudAccuracyTier' => '<string>',
'removeTrailingPeriod' => true,
'enableScreenOCR' => true,
'geminiCustomPrompt' => '<string>',
'cloudPostProcessingModel' => '<string>',
'cloudTranscriptionDomain' => '<string>',
'localEngine' => '<string>',
'localParakeetModel' => '<string>',
'localPostProcessingModel' => '<string>',
'customVocabulary' => [
'<string>'
],
'providerType' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:{port}/modes/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"preset\": \"<string>\",\n \"language\": \"<string>\",\n \"model\": \"<string>\",\n \"punctuation\": true,\n \"capitalization\": true,\n \"profanityFilter\": true,\n \"customInstructions\": \"<string>\",\n \"userSystemPrompt\": \"<string>\",\n \"isDefault\": true,\n \"sortOrder\": -1,\n \"languageModel\": \"<string>\",\n \"cloudTranscriptionModel\": \"<string>\",\n \"cloudProvider\": \"<string>\",\n \"postProcessingMode\": 1,\n \"postProcessingProvider\": \"<string>\",\n \"englishSpelling\": \"<string>\",\n \"useStreamingTranscription\": true,\n \"cloudAccuracyTier\": \"<string>\",\n \"removeTrailingPeriod\": true,\n \"enableScreenOCR\": true,\n \"geminiCustomPrompt\": \"<string>\",\n \"cloudPostProcessingModel\": \"<string>\",\n \"cloudTranscriptionDomain\": \"<string>\",\n \"localEngine\": \"<string>\",\n \"localParakeetModel\": \"<string>\",\n \"localPostProcessingModel\": \"<string>\",\n \"customVocabulary\": [\n \"<string>\"\n ],\n \"providerType\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("http://127.0.0.1:{port}/modes/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"preset\": \"<string>\",\n \"language\": \"<string>\",\n \"model\": \"<string>\",\n \"punctuation\": true,\n \"capitalization\": true,\n \"profanityFilter\": true,\n \"customInstructions\": \"<string>\",\n \"userSystemPrompt\": \"<string>\",\n \"isDefault\": true,\n \"sortOrder\": -1,\n \"languageModel\": \"<string>\",\n \"cloudTranscriptionModel\": \"<string>\",\n \"cloudProvider\": \"<string>\",\n \"postProcessingMode\": 1,\n \"postProcessingProvider\": \"<string>\",\n \"englishSpelling\": \"<string>\",\n \"useStreamingTranscription\": true,\n \"cloudAccuracyTier\": \"<string>\",\n \"removeTrailingPeriod\": true,\n \"enableScreenOCR\": true,\n \"geminiCustomPrompt\": \"<string>\",\n \"cloudPostProcessingModel\": \"<string>\",\n \"cloudTranscriptionDomain\": \"<string>\",\n \"localEngine\": \"<string>\",\n \"localParakeetModel\": \"<string>\",\n \"localPostProcessingModel\": \"<string>\",\n \"customVocabulary\": [\n \"<string>\"\n ],\n \"providerType\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1:{port}/modes/{id}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"preset\": \"<string>\",\n \"language\": \"<string>\",\n \"model\": \"<string>\",\n \"punctuation\": true,\n \"capitalization\": true,\n \"profanityFilter\": true,\n \"customInstructions\": \"<string>\",\n \"userSystemPrompt\": \"<string>\",\n \"isDefault\": true,\n \"sortOrder\": -1,\n \"languageModel\": \"<string>\",\n \"cloudTranscriptionModel\": \"<string>\",\n \"cloudProvider\": \"<string>\",\n \"postProcessingMode\": 1,\n \"postProcessingProvider\": \"<string>\",\n \"englishSpelling\": \"<string>\",\n \"useStreamingTranscription\": true,\n \"cloudAccuracyTier\": \"<string>\",\n \"removeTrailingPeriod\": true,\n \"enableScreenOCR\": true,\n \"geminiCustomPrompt\": \"<string>\",\n \"cloudPostProcessingModel\": \"<string>\",\n \"cloudTranscriptionDomain\": \"<string>\",\n \"localEngine\": \"<string>\",\n \"localParakeetModel\": \"<string>\",\n \"localPostProcessingModel\": \"<string>\",\n \"customVocabulary\": [\n \"<string>\"\n ],\n \"providerType\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"mode": {
"name": "<string>",
"preset": "<string>",
"language": "<string>",
"model": "<string>",
"punctuation": true,
"capitalization": true,
"profanityFilter": true,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customInstructions": "<string>",
"userSystemPrompt": "<string>",
"isDefault": true,
"isSystemProvided": true,
"sortOrder": -1,
"createdDate": "2023-11-07T05:31:56Z",
"modifiedDate": "2023-11-07T05:31:56Z",
"languageModel": "<string>",
"cloudTranscriptionModel": "<string>",
"cloudProvider": "<string>",
"postProcessingMode": 1,
"postProcessingProvider": "<string>",
"englishSpelling": "<string>",
"useStreamingTranscription": true,
"cloudAccuracyTier": "<string>",
"removeTrailingPeriod": true,
"enableScreenOCR": true,
"geminiCustomPrompt": "<string>",
"cloudPostProcessingModel": "<string>",
"cloudTranscriptionDomain": "<string>",
"localEngine": "<string>",
"localParakeetModel": "<string>",
"localPostProcessingModel": "<string>",
"customVocabulary": [
"<string>"
],
"providerType": "<string>"
}
}Partial-field update
curl --request PATCH \
--url http://127.0.0.1:{port}/modes/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"preset": "<string>",
"language": "<string>",
"model": "<string>",
"punctuation": true,
"capitalization": true,
"profanityFilter": true,
"customInstructions": "<string>",
"userSystemPrompt": "<string>",
"isDefault": true,
"sortOrder": -1,
"languageModel": "<string>",
"cloudTranscriptionModel": "<string>",
"cloudProvider": "<string>",
"postProcessingMode": 1,
"postProcessingProvider": "<string>",
"englishSpelling": "<string>",
"useStreamingTranscription": true,
"cloudAccuracyTier": "<string>",
"removeTrailingPeriod": true,
"enableScreenOCR": true,
"geminiCustomPrompt": "<string>",
"cloudPostProcessingModel": "<string>",
"cloudTranscriptionDomain": "<string>",
"localEngine": "<string>",
"localParakeetModel": "<string>",
"localPostProcessingModel": "<string>",
"customVocabulary": [
"<string>"
],
"providerType": "<string>"
}
'import requests
url = "http://127.0.0.1:{port}/modes/{id}"
payload = {
"name": "<string>",
"preset": "<string>",
"language": "<string>",
"model": "<string>",
"punctuation": True,
"capitalization": True,
"profanityFilter": True,
"customInstructions": "<string>",
"userSystemPrompt": "<string>",
"isDefault": True,
"sortOrder": -1,
"languageModel": "<string>",
"cloudTranscriptionModel": "<string>",
"cloudProvider": "<string>",
"postProcessingMode": 1,
"postProcessingProvider": "<string>",
"englishSpelling": "<string>",
"useStreamingTranscription": True,
"cloudAccuracyTier": "<string>",
"removeTrailingPeriod": True,
"enableScreenOCR": True,
"geminiCustomPrompt": "<string>",
"cloudPostProcessingModel": "<string>",
"cloudTranscriptionDomain": "<string>",
"localEngine": "<string>",
"localParakeetModel": "<string>",
"localPostProcessingModel": "<string>",
"customVocabulary": ["<string>"],
"providerType": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
preset: '<string>',
language: '<string>',
model: '<string>',
punctuation: true,
capitalization: true,
profanityFilter: true,
customInstructions: '<string>',
userSystemPrompt: '<string>',
isDefault: true,
sortOrder: -1,
languageModel: '<string>',
cloudTranscriptionModel: '<string>',
cloudProvider: '<string>',
postProcessingMode: 1,
postProcessingProvider: '<string>',
englishSpelling: '<string>',
useStreamingTranscription: true,
cloudAccuracyTier: '<string>',
removeTrailingPeriod: true,
enableScreenOCR: true,
geminiCustomPrompt: '<string>',
cloudPostProcessingModel: '<string>',
cloudTranscriptionDomain: '<string>',
localEngine: '<string>',
localParakeetModel: '<string>',
localPostProcessingModel: '<string>',
customVocabulary: ['<string>'],
providerType: '<string>'
})
};
fetch('http://127.0.0.1:{port}/modes/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "62437",
CURLOPT_URL => "http://127.0.0.1:{port}/modes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'preset' => '<string>',
'language' => '<string>',
'model' => '<string>',
'punctuation' => true,
'capitalization' => true,
'profanityFilter' => true,
'customInstructions' => '<string>',
'userSystemPrompt' => '<string>',
'isDefault' => true,
'sortOrder' => -1,
'languageModel' => '<string>',
'cloudTranscriptionModel' => '<string>',
'cloudProvider' => '<string>',
'postProcessingMode' => 1,
'postProcessingProvider' => '<string>',
'englishSpelling' => '<string>',
'useStreamingTranscription' => true,
'cloudAccuracyTier' => '<string>',
'removeTrailingPeriod' => true,
'enableScreenOCR' => true,
'geminiCustomPrompt' => '<string>',
'cloudPostProcessingModel' => '<string>',
'cloudTranscriptionDomain' => '<string>',
'localEngine' => '<string>',
'localParakeetModel' => '<string>',
'localPostProcessingModel' => '<string>',
'customVocabulary' => [
'<string>'
],
'providerType' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:{port}/modes/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"preset\": \"<string>\",\n \"language\": \"<string>\",\n \"model\": \"<string>\",\n \"punctuation\": true,\n \"capitalization\": true,\n \"profanityFilter\": true,\n \"customInstructions\": \"<string>\",\n \"userSystemPrompt\": \"<string>\",\n \"isDefault\": true,\n \"sortOrder\": -1,\n \"languageModel\": \"<string>\",\n \"cloudTranscriptionModel\": \"<string>\",\n \"cloudProvider\": \"<string>\",\n \"postProcessingMode\": 1,\n \"postProcessingProvider\": \"<string>\",\n \"englishSpelling\": \"<string>\",\n \"useStreamingTranscription\": true,\n \"cloudAccuracyTier\": \"<string>\",\n \"removeTrailingPeriod\": true,\n \"enableScreenOCR\": true,\n \"geminiCustomPrompt\": \"<string>\",\n \"cloudPostProcessingModel\": \"<string>\",\n \"cloudTranscriptionDomain\": \"<string>\",\n \"localEngine\": \"<string>\",\n \"localParakeetModel\": \"<string>\",\n \"localPostProcessingModel\": \"<string>\",\n \"customVocabulary\": [\n \"<string>\"\n ],\n \"providerType\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("http://127.0.0.1:{port}/modes/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"preset\": \"<string>\",\n \"language\": \"<string>\",\n \"model\": \"<string>\",\n \"punctuation\": true,\n \"capitalization\": true,\n \"profanityFilter\": true,\n \"customInstructions\": \"<string>\",\n \"userSystemPrompt\": \"<string>\",\n \"isDefault\": true,\n \"sortOrder\": -1,\n \"languageModel\": \"<string>\",\n \"cloudTranscriptionModel\": \"<string>\",\n \"cloudProvider\": \"<string>\",\n \"postProcessingMode\": 1,\n \"postProcessingProvider\": \"<string>\",\n \"englishSpelling\": \"<string>\",\n \"useStreamingTranscription\": true,\n \"cloudAccuracyTier\": \"<string>\",\n \"removeTrailingPeriod\": true,\n \"enableScreenOCR\": true,\n \"geminiCustomPrompt\": \"<string>\",\n \"cloudPostProcessingModel\": \"<string>\",\n \"cloudTranscriptionDomain\": \"<string>\",\n \"localEngine\": \"<string>\",\n \"localParakeetModel\": \"<string>\",\n \"localPostProcessingModel\": \"<string>\",\n \"customVocabulary\": [\n \"<string>\"\n ],\n \"providerType\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1:{port}/modes/{id}")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"preset\": \"<string>\",\n \"language\": \"<string>\",\n \"model\": \"<string>\",\n \"punctuation\": true,\n \"capitalization\": true,\n \"profanityFilter\": true,\n \"customInstructions\": \"<string>\",\n \"userSystemPrompt\": \"<string>\",\n \"isDefault\": true,\n \"sortOrder\": -1,\n \"languageModel\": \"<string>\",\n \"cloudTranscriptionModel\": \"<string>\",\n \"cloudProvider\": \"<string>\",\n \"postProcessingMode\": 1,\n \"postProcessingProvider\": \"<string>\",\n \"englishSpelling\": \"<string>\",\n \"useStreamingTranscription\": true,\n \"cloudAccuracyTier\": \"<string>\",\n \"removeTrailingPeriod\": true,\n \"enableScreenOCR\": true,\n \"geminiCustomPrompt\": \"<string>\",\n \"cloudPostProcessingModel\": \"<string>\",\n \"cloudTranscriptionDomain\": \"<string>\",\n \"localEngine\": \"<string>\",\n \"localParakeetModel\": \"<string>\",\n \"localPostProcessingModel\": \"<string>\",\n \"customVocabulary\": [\n \"<string>\"\n ],\n \"providerType\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"mode": {
"name": "<string>",
"preset": "<string>",
"language": "<string>",
"model": "<string>",
"punctuation": true,
"capitalization": true,
"profanityFilter": true,
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"customInstructions": "<string>",
"userSystemPrompt": "<string>",
"isDefault": true,
"isSystemProvided": true,
"sortOrder": -1,
"createdDate": "2023-11-07T05:31:56Z",
"modifiedDate": "2023-11-07T05:31:56Z",
"languageModel": "<string>",
"cloudTranscriptionModel": "<string>",
"cloudProvider": "<string>",
"postProcessingMode": 1,
"postProcessingProvider": "<string>",
"englishSpelling": "<string>",
"useStreamingTranscription": true,
"cloudAccuracyTier": "<string>",
"removeTrailingPeriod": true,
"enableScreenOCR": true,
"geminiCustomPrompt": "<string>",
"cloudPostProcessingModel": "<string>",
"cloudTranscriptionDomain": "<string>",
"localEngine": "<string>",
"localParakeetModel": "<string>",
"localPostProcessingModel": "<string>",
"customVocabulary": [
"<string>"
],
"providerType": "<string>"
}
}Authorizations
Token from the discovery file. Required on every endpoint except /health.
Path Parameters
Body
Partial Mode. Any field omitted is left untouched on the server. All fields are optional. id, isSystemProvided, createdDate and modifiedDate are read-only: the server ignores them here, and sets modifiedDate itself on each patch. On macOS, an explicit JSON null clears customInstructions, userSystemPrompt, languageModel, cloudTranscriptionModel, cloudTranscriptionDomain, cloudProvider, postProcessingProvider, englishSpelling, cloudAccuracyTier, geminiCustomPrompt, or cloudPostProcessingModel. Windows treats null like omission for nullable PATCH fields. A key that is not listed here is IGNORED, on every platform. The value bounds are the same as on Mode; only the required-key rule is create-only.
Must not be empty after normalization and must be unique. Two names are the same name when they are equal after trimming Unicode whitespace and lowercasing. Windows and Linux trim boundary whitespace first; macOS also normalizes Unicode, trims invisible boundary characters, and rejects names with no visible base character. Lengths are counted in Unicode scalar values.
1 - 100hyper | message | mail | note | meeting | code | custom
1 - 641 - 328000Every platform accepts values from -32768 through 32767.
-32768 <= x <= 32767The cloud vendor this Mode dictates on. A value you WRITE is normalized before it is stored, on every platform: it is lowercased, and the two LEGACY names googlespeech and microsoftazurespeech (either casing) are folded onto hyperwhisper plus the matching cloudAccuracyTier (geminiTranscribe, azureMaiTranscribe) — those providers are HyperWhisper Cloud accuracy tiers now, not standalone vendors. So a Mode read back may not carry the string you sent. On CREATE the folded tier wins over a cloudAccuracyTier in the same body; on PATCH a cloudAccuracyTier in the same request wins — so PATCHING BACK A WHOLE DOCUMENT YOU FETCHED WITH GET folds the provider but PINS the tier the Mode already had, which may not be the tier the name implies. Send only the keys you are changing. A Mode that ALREADY holds a legacy name is not rewritten by this endpoint and is reported as stored. Windows, macOS and Linux fold such a row once at app startup.
0 = off, 1 = cloud, 2 = local. Every platform rejects all other values.
0 <= x <= 2american | british | australian | canadian
2000Windows and Linux. macOS ignores this key.
Windows and Linux. macOS ignores this key.
Windows and Linux. macOS ignores this key.
Windows and Linux. macOS ignores this key.
1000200Windows and Linux. macOS ignores this key. Windows accepts local or cloud in any casing, stores it lowercase, and refuses any other value with INVALID_REQUEST. A mode written before that rule may still return another value; Windows runs it on-device. Linux stores any value other than cloud as local and does not refuse it.
Response
Updated mode
A key that is not listed here is IGNORED, on every platform. That is what makes the "Windows and Linux" keys below safe to send from a cross-platform client. The seven required keys are required on POST /modes only; a body missing one is refused on every platform with HTTP 200 and INVALID_REQUEST, naming the keys that are missing. A well-formed JSON object that is merely incomplete is a business failure, not a protocol failure — see the envelope rule in this document's introduction. A body that is not a JSON object, or that carries a value of the wrong type, is still the protocol failure that rule describes: HTTP 400.
Show child attributes
Show child attributes
Was this page helpful?
