Push Content Draft To CMS
curl --request POST \
--url https://server.promptwatch.com/api/v2/content/{id}/cms/draft \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>"
}
'import requests
url = "https://server.promptwatch.com/api/v2/content/{id}/cms/draft"
payload = {
"connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({connectionId: '3c90c3cc-0d44-4b50-8888-8dd25736052a', slug: '<string>'})
};
fetch('https://server.promptwatch.com/api/v2/content/{id}/cms/draft', 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://server.promptwatch.com/api/v2/content/{id}/cms/draft",
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([
'connectionId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'slug' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://server.promptwatch.com/api/v2/content/{id}/cms/draft"
payload := strings.NewReader("{\n \"connectionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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://server.promptwatch.com/api/v2/content/{id}/cms/draft")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"connectionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.promptwatch.com/api/v2/content/{id}/cms/draft")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"connectionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"publishRecordId": "6ba7b825-9dad-11d1-80b4-00c04fd430c8",
"externalItemId": "65f1c0a1b2c3d4e5f6a7b8c9",
"status": "STAGED",
"slug": "how-to-rank-in-chatgpt"
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}{
"error": "Unauthorized",
"message": "Missing or invalid X-API-Key header."
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}Publishing
Push Content Draft To CMS
Write the document to the connected CMS as an unpublished draft, creating the item or updating the existing one. Nothing goes live until you call the publish endpoint. Calls the CMS provider synchronously.
POST
/
content
/
{id}
/
cms
/
draft
Push Content Draft To CMS
curl --request POST \
--url https://server.promptwatch.com/api/v2/content/{id}/cms/draft \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>"
}
'import requests
url = "https://server.promptwatch.com/api/v2/content/{id}/cms/draft"
payload = {
"connectionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({connectionId: '3c90c3cc-0d44-4b50-8888-8dd25736052a', slug: '<string>'})
};
fetch('https://server.promptwatch.com/api/v2/content/{id}/cms/draft', 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://server.promptwatch.com/api/v2/content/{id}/cms/draft",
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([
'connectionId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'slug' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://server.promptwatch.com/api/v2/content/{id}/cms/draft"
payload := strings.NewReader("{\n \"connectionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<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://server.promptwatch.com/api/v2/content/{id}/cms/draft")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"connectionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.promptwatch.com/api/v2/content/{id}/cms/draft")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"connectionId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"publishRecordId": "6ba7b825-9dad-11d1-80b4-00c04fd430c8",
"externalItemId": "65f1c0a1b2c3d4e5f6a7b8c9",
"status": "STAGED",
"slug": "how-to-rank-in-chatgpt"
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}{
"error": "Unauthorized",
"message": "Missing or invalid X-API-Key header."
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}{
"code": "CMS_INTEGRATIONS_CONNECTION_NOT_FOUND",
"message": "CMS connection not found"
}Authorizations
API key for authentication. Get yours from the Promptwatch dashboard under Settings > API Keys.
Path Parameters
Content document identifier
Body
application/json
Response
Default Response
⌘I