curl --request PATCH \
--url https://api.goextrovert.com/client/v2/comments/{postId}/draft \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"postId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ownerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"text": "<string>"
}
'import requests
url = "https://api.goextrovert.com/client/v2/comments/{postId}/draft"
payload = {
"postId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ownerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"text": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
postId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
ownerId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
text: '<string>'
})
};
fetch('https://api.goextrovert.com/client/v2/comments/{postId}/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://api.goextrovert.com/client/v2/comments/{postId}/draft",
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([
'postId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'ownerId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'text' => '<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://api.goextrovert.com/client/v2/comments/{postId}/draft"
payload := strings.NewReader("{\n \"postId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ownerId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.goextrovert.com/client/v2/comments/{postId}/draft")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"postId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ownerId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goextrovert.com/client/v2/comments/{postId}/draft")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"postId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ownerId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": null,
"message": "Operation completed successfully"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}Set comment draft text
Sets the exact text of the unpublished comment draft for later review and approval, replacing the current draft text; the text Extrovert generated stays stored, but earlier text the user wrote or edited is replaced and not kept. It creates an ordinary draft when none exists and never calls Extrovert generation. If the text includes the post author’s full LinkedIn name or a leading part of it, Extrovert automatically tags the author once when publishing, preferring the most complete matching name. Match a literal leading part of the LinkedIn name, preserving all leading emoji and the exact spelling. A matching name must contain at least two letters; emoji-only prefixes are skipped. It does not approve or post the comment; call it again to change the text. The comment identity is postId + ownerId and the change is owner-global: it also applies to sibling campaign activities of the same owner, even when the feed context came from one campaign.
curl --request PATCH \
--url https://api.goextrovert.com/client/v2/comments/{postId}/draft \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"postId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ownerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"text": "<string>"
}
'import requests
url = "https://api.goextrovert.com/client/v2/comments/{postId}/draft"
payload = {
"postId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ownerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"text": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
postId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
ownerId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
text: '<string>'
})
};
fetch('https://api.goextrovert.com/client/v2/comments/{postId}/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://api.goextrovert.com/client/v2/comments/{postId}/draft",
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([
'postId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'ownerId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'text' => '<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://api.goextrovert.com/client/v2/comments/{postId}/draft"
payload := strings.NewReader("{\n \"postId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ownerId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.goextrovert.com/client/v2/comments/{postId}/draft")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"postId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ownerId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.goextrovert.com/client/v2/comments/{postId}/draft")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"postId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"ownerId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"data": null,
"message": "Operation completed successfully"
}{
"status": "error",
"data": null,
"message": "An error occurred while processing the request"
}Authorizations
API Key for authentication
Path Parameters
Body
LinkedIn post identity inside Extrovert.
LinkedIn account owner whose comment is addressed. Often a managed account rather than the authenticated user — call user_list-shared first and pick the owner whose LinkedIn profile runs the campaign.
Replacement draft text; surrounding whitespace is trimmed. Empty text cannot clear it. This does not generate or post.
1 - 1250