Update variables
curl --request PATCH \
--url https://api.dittowords.com/v2/variables \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"updates": [
{
"name": "user_name",
"newName": "customer_name"
},
{
"name": "help_link",
"data": {
"text": "Read the docs",
"url": "https://dittowords.com/docs"
}
}
]
}
'import requests
url = "https://api.dittowords.com/v2/variables"
payload = { "updates": [
{
"name": "user_name",
"newName": "customer_name"
},
{
"name": "help_link",
"data": {
"text": "Read the docs",
"url": "https://dittowords.com/docs"
}
}
] }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
updates: [
{name: 'user_name', newName: 'customer_name'},
{
name: 'help_link',
data: {text: 'Read the docs', url: 'https://dittowords.com/docs'}
}
]
})
};
fetch('https://api.dittowords.com/v2/variables', 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.dittowords.com/v2/variables",
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([
'updates' => [
[
'name' => 'user_name',
'newName' => 'customer_name'
],
[
'name' => 'help_link',
'data' => [
'text' => 'Read the docs',
'url' => 'https://dittowords.com/docs'
]
]
]
]),
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.dittowords.com/v2/variables"
payload := strings.NewReader("{\n \"updates\": [\n {\n \"name\": \"user_name\",\n \"newName\": \"customer_name\"\n },\n {\n \"name\": \"help_link\",\n \"data\": {\n \"text\": \"Read the docs\",\n \"url\": \"https://dittowords.com/docs\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.dittowords.com/v2/variables")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"updates\": [\n {\n \"name\": \"user_name\",\n \"newName\": \"customer_name\"\n },\n {\n \"name\": \"help_link\",\n \"data\": {\n \"text\": \"Read the docs\",\n \"url\": \"https://dittowords.com/docs\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dittowords.com/v2/variables")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"updates\": [\n {\n \"name\": \"user_name\",\n \"newName\": \"customer_name\"\n },\n {\n \"name\": \"help_link\",\n \"data\": {\n \"text\": \"Read the docs\",\n \"url\": \"https://dittowords.com/docs\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"updated": [
"customer_name"
],
"unchanged": [
"help_link"
]
}{
"message": "<string>"
}{
"message": "Variable name not found: user_name"
}Variables
Update variables
Renames variables or changes their type or value. Renaming rewrites every referencing the variable, across text items, library components, variants, and plurals, so existing text keeps resolving. String, number, and hyperlink variables have fixed data fields, so sending only some of them leaves the rest as they were; a list or map variable’s data is its entire value, so what you send replaces it outright. Changing type means sending data as well, even when the value itself stays the same. Either every update is applied or none is.
PATCH
/
variables
Update variables
curl --request PATCH \
--url https://api.dittowords.com/v2/variables \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"updates": [
{
"name": "user_name",
"newName": "customer_name"
},
{
"name": "help_link",
"data": {
"text": "Read the docs",
"url": "https://dittowords.com/docs"
}
}
]
}
'import requests
url = "https://api.dittowords.com/v2/variables"
payload = { "updates": [
{
"name": "user_name",
"newName": "customer_name"
},
{
"name": "help_link",
"data": {
"text": "Read the docs",
"url": "https://dittowords.com/docs"
}
}
] }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
updates: [
{name: 'user_name', newName: 'customer_name'},
{
name: 'help_link',
data: {text: 'Read the docs', url: 'https://dittowords.com/docs'}
}
]
})
};
fetch('https://api.dittowords.com/v2/variables', 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.dittowords.com/v2/variables",
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([
'updates' => [
[
'name' => 'user_name',
'newName' => 'customer_name'
],
[
'name' => 'help_link',
'data' => [
'text' => 'Read the docs',
'url' => 'https://dittowords.com/docs'
]
]
]
]),
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.dittowords.com/v2/variables"
payload := strings.NewReader("{\n \"updates\": [\n {\n \"name\": \"user_name\",\n \"newName\": \"customer_name\"\n },\n {\n \"name\": \"help_link\",\n \"data\": {\n \"text\": \"Read the docs\",\n \"url\": \"https://dittowords.com/docs\"\n }\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.dittowords.com/v2/variables")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"updates\": [\n {\n \"name\": \"user_name\",\n \"newName\": \"customer_name\"\n },\n {\n \"name\": \"help_link\",\n \"data\": {\n \"text\": \"Read the docs\",\n \"url\": \"https://dittowords.com/docs\"\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dittowords.com/v2/variables")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"updates\": [\n {\n \"name\": \"user_name\",\n \"newName\": \"customer_name\"\n },\n {\n \"name\": \"help_link\",\n \"data\": {\n \"text\": \"Read the docs\",\n \"url\": \"https://dittowords.com/docs\"\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"updated": [
"customer_name"
],
"unchanged": [
"help_link"
]
}{
"message": "<string>"
}{
"message": "Variable name not found: user_name"
}Authorizations
Body
application/json
Array of updates to variables
Minimum array length:
1Show child attributes
Show child attributes
⌘I