curl --request POST \
--url https://api.meetingkit.com/api/v1/settings \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Catalan",
"transcription": {
"language": "ca"
},
"assignments": [
{
"scope": [
"members:mem_01k69x9s8x7c2dvq3m5n6p4ab"
]
}
]
}
'import requests
url = "https://api.meetingkit.com/api/v1/settings"
payload = {
"name": "Catalan",
"transcription": { "language": "ca" },
"assignments": [{ "scope": ["members:mem_01k69x9s8x7c2dvq3m5n6p4ab"] }]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Catalan',
transcription: {language: 'ca'},
assignments: [{scope: ['members:mem_01k69x9s8x7c2dvq3m5n6p4ab']}]
})
};
fetch('https://api.meetingkit.com/api/v1/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meetingkit.com/api/v1/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Catalan',
'transcription' => [
'language' => 'ca'
],
'assignments' => [
[
'scope' => [
'members:mem_01k69x9s8x7c2dvq3m5n6p4ab'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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 := "https://api.meetingkit.com/api/v1/settings"
payload := strings.NewReader("{\n \"name\": \"Catalan\",\n \"transcription\": {\n \"language\": \"ca\"\n },\n \"assignments\": [\n {\n \"scope\": [\n \"members:mem_01k69x9s8x7c2dvq3m5n6p4ab\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.post("https://api.meetingkit.com/api/v1/settings")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Catalan\",\n \"transcription\": {\n \"language\": \"ca\"\n },\n \"assignments\": [\n {\n \"scope\": [\n \"members:mem_01k69x9s8x7c2dvq3m5n6p4ab\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetingkit.com/api/v1/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Catalan\",\n \"transcription\": {\n \"language\": \"ca\"\n },\n \"assignments\": [\n {\n \"scope\": [\n \"members:mem_01k69x9s8x7c2dvq3m5n6p4ab\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "set_01k6sa1es0000000000000000a",
"object": "settings",
"name": null,
"recording": {
"enabled": false,
"methods": {
"bot": {
"start": "on_join",
"mode": "audio_only",
"silence_detection": {
"alert": true
}
}
}
},
"transcription": {
"language": "ca"
},
"summary": {
"template": "discovery_call",
"language": "same_as_transcript"
},
"branding": {
"brand_kit_id": "inherit"
},
"assignments": [
{
"id": "asg_01k6a1ana00000000000000000",
"scope": [
"members:mem_01k69x9s8x7c2dvq3m5n6p4ab"
]
}
],
"created_at": "2026-09-30T09:12:41Z",
"updated_at": "2026-09-30T09:12:41Z"
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}Create settings
Creates a settings object and, inline, its assignments. Without assignments, workspace_id names the workspace
that owns it. A scope set is assigned once: another assignment of it answers 409 scope_taken naming it. A
meetings:mtg_… assignment reaches that occurrence only.
curl --request POST \
--url https://api.meetingkit.com/api/v1/settings \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Catalan",
"transcription": {
"language": "ca"
},
"assignments": [
{
"scope": [
"members:mem_01k69x9s8x7c2dvq3m5n6p4ab"
]
}
]
}
'import requests
url = "https://api.meetingkit.com/api/v1/settings"
payload = {
"name": "Catalan",
"transcription": { "language": "ca" },
"assignments": [{ "scope": ["members:mem_01k69x9s8x7c2dvq3m5n6p4ab"] }]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Catalan',
transcription: {language: 'ca'},
assignments: [{scope: ['members:mem_01k69x9s8x7c2dvq3m5n6p4ab']}]
})
};
fetch('https://api.meetingkit.com/api/v1/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meetingkit.com/api/v1/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Catalan',
'transcription' => [
'language' => 'ca'
],
'assignments' => [
[
'scope' => [
'members:mem_01k69x9s8x7c2dvq3m5n6p4ab'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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 := "https://api.meetingkit.com/api/v1/settings"
payload := strings.NewReader("{\n \"name\": \"Catalan\",\n \"transcription\": {\n \"language\": \"ca\"\n },\n \"assignments\": [\n {\n \"scope\": [\n \"members:mem_01k69x9s8x7c2dvq3m5n6p4ab\"\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.post("https://api.meetingkit.com/api/v1/settings")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Catalan\",\n \"transcription\": {\n \"language\": \"ca\"\n },\n \"assignments\": [\n {\n \"scope\": [\n \"members:mem_01k69x9s8x7c2dvq3m5n6p4ab\"\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meetingkit.com/api/v1/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Catalan\",\n \"transcription\": {\n \"language\": \"ca\"\n },\n \"assignments\": [\n {\n \"scope\": [\n \"members:mem_01k69x9s8x7c2dvq3m5n6p4ab\"\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "set_01k6sa1es0000000000000000a",
"object": "settings",
"name": null,
"recording": {
"enabled": false,
"methods": {
"bot": {
"start": "on_join",
"mode": "audio_only",
"silence_detection": {
"alert": true
}
}
}
},
"transcription": {
"language": "ca"
},
"summary": {
"template": "discovery_call",
"language": "same_as_transcript"
},
"branding": {
"brand_kit_id": "inherit"
},
"assignments": [
{
"id": "asg_01k6a1ana00000000000000000",
"scope": [
"members:mem_01k69x9s8x7c2dvq3m5n6p4ab"
]
}
],
"created_at": "2026-09-30T09:12:41Z",
"updated_at": "2026-09-30T09:12:41Z"
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}{
"errors": [
{
"code": "invalid",
"field": "recording.methods.bot.mode",
"message": "must be one of: audio_and_video, audio_only, inherit"
}
]
}Authorizations
Your API key, sent bare. See Authentication.
Body
The values to set, and where they apply.
A name to find the settings by.
200The workspace that owns the settings. Required without assignments; else the first assignment's.
Where the settings apply, one scope each.
Show child attributes
Show child attributes
Response
The settings, with their assignments.
Values for the fields a partner sets, applied where its assignments say.
Beginning with set_.
Always settings.
A name to find the settings by, at most 200 characters; null for none.
Whether meetings get recorded, and how.
Show child attributes
Show child attributes
How the recording is transcribed.
Show child attributes
Show child attributes
How the summary is written.
Show child attributes
Show child attributes
How the notetaker is branded. Only with a workspaces: condition.
Show child attributes
Show child attributes
Where these settings apply. Read-only; change them with the settings assignments endpoints.
Show child attributes
Show child attributes
When the settings were created, in ISO 8601.
When the settings last changed, in ISO 8601.