curl --request POST \
--url https://api.dittowords.com/v2/components/staged/publish \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"componentIds": [
"component-id-1",
"component-id-2"
]
}
'import requests
url = "https://api.dittowords.com/v2/components/staged/publish"
payload = { "componentIds": ["component-id-1", "component-id-2"] }
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({componentIds: ['component-id-1', 'component-id-2']})
};
fetch('https://api.dittowords.com/v2/components/staged/publish', 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/components/staged/publish",
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([
'componentIds' => [
'component-id-1',
'component-id-2'
]
]),
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/components/staged/publish"
payload := strings.NewReader("{\n \"componentIds\": [\n \"component-id-1\",\n \"component-id-2\"\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.dittowords.com/v2/components/staged/publish")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"componentIds\": [\n \"component-id-1\",\n \"component-id-2\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dittowords.com/v2/components/staged/publish")
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 \"componentIds\": [\n \"component-id-1\",\n \"component-id-2\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"publishedIds": [
"component-id-1"
],
"skippedIds": [
"component-id-2"
]
}{
"message": "Component with developer ID component-id-1 not found"
}{
"message": "This workspace hasn't opted into library component versioning"
}Publish component changes
Publishes the unpublished changes on library components by their Developer IDs. Components with no unpublished changes are left as they are and returned in skippedIds.
The operation is all-or-nothing: if any Developer ID does not match a component, nothing is published.
Only available in workspaces that have opted into library component versioning.
curl --request POST \
--url https://api.dittowords.com/v2/components/staged/publish \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"componentIds": [
"component-id-1",
"component-id-2"
]
}
'import requests
url = "https://api.dittowords.com/v2/components/staged/publish"
payload = { "componentIds": ["component-id-1", "component-id-2"] }
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({componentIds: ['component-id-1', 'component-id-2']})
};
fetch('https://api.dittowords.com/v2/components/staged/publish', 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/components/staged/publish",
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([
'componentIds' => [
'component-id-1',
'component-id-2'
]
]),
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/components/staged/publish"
payload := strings.NewReader("{\n \"componentIds\": [\n \"component-id-1\",\n \"component-id-2\"\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.dittowords.com/v2/components/staged/publish")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"componentIds\": [\n \"component-id-1\",\n \"component-id-2\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dittowords.com/v2/components/staged/publish")
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 \"componentIds\": [\n \"component-id-1\",\n \"component-id-2\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"publishedIds": [
"component-id-1"
],
"skippedIds": [
"component-id-2"
]
}{
"message": "Component with developer ID component-id-1 not found"
}{
"message": "This workspace hasn't opted into library component versioning"
}Authorizations
Body
Array of Developer IDs for the library components whose unpublished changes should be published, incrementing the version of each. Components with no unpublished changes are left as they were.
Response
Returns success status of the publish operation, the Developer IDs of the components whose unpublished changes were published, and the Developer IDs of any that had no unpublished changes
Indicates whether the unpublished changes were published
Developer IDs of the components whose unpublished changes were published, in request order
Developer IDs of requested components that had no unpublished changes, left as they were