Write a comment
curl --request POST \
--url https://api.madiad.com/v1/engagement/comments/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"profile_id": "<string>",
"message": "<string>",
"post_id": "<string>",
"post_url": "<string>",
"comment_id": "<string>"
}
'import requests
url = "https://api.madiad.com/v1/engagement/comments/create"
payload = {
"profile_id": "<string>",
"message": "<string>",
"post_id": "<string>",
"post_url": "<string>",
"comment_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
profile_id: '<string>',
message: '<string>',
post_id: '<string>',
post_url: '<string>',
comment_id: '<string>'
})
};
fetch('https://api.madiad.com/v1/engagement/comments/create', 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.madiad.com/v1/engagement/comments/create",
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([
'profile_id' => '<string>',
'message' => '<string>',
'post_id' => '<string>',
'post_url' => '<string>',
'comment_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.madiad.com/v1/engagement/comments/create"
payload := strings.NewReader("{\n \"profile_id\": \"<string>\",\n \"message\": \"<string>\",\n \"post_id\": \"<string>\",\n \"post_url\": \"<string>\",\n \"comment_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.madiad.com/v1/engagement/comments/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"profile_id\": \"<string>\",\n \"message\": \"<string>\",\n \"post_id\": \"<string>\",\n \"post_url\": \"<string>\",\n \"comment_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.madiad.com/v1/engagement/comments/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"profile_id\": \"<string>\",\n \"message\": \"<string>\",\n \"post_id\": \"<string>\",\n \"post_url\": \"<string>\",\n \"comment_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}engagement
Write a comment
A top-level comment on a post, or a public reply under another comment. Which of post_id / post_url / comment_id is needed depends on the channel.
POST
/
v1
/
engagement
/
comments
/
create
Write a comment
curl --request POST \
--url https://api.madiad.com/v1/engagement/comments/create \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"profile_id": "<string>",
"message": "<string>",
"post_id": "<string>",
"post_url": "<string>",
"comment_id": "<string>"
}
'import requests
url = "https://api.madiad.com/v1/engagement/comments/create"
payload = {
"profile_id": "<string>",
"message": "<string>",
"post_id": "<string>",
"post_url": "<string>",
"comment_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
profile_id: '<string>',
message: '<string>',
post_id: '<string>',
post_url: '<string>',
comment_id: '<string>'
})
};
fetch('https://api.madiad.com/v1/engagement/comments/create', 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.madiad.com/v1/engagement/comments/create",
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([
'profile_id' => '<string>',
'message' => '<string>',
'post_id' => '<string>',
'post_url' => '<string>',
'comment_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.madiad.com/v1/engagement/comments/create"
payload := strings.NewReader("{\n \"profile_id\": \"<string>\",\n \"message\": \"<string>\",\n \"post_id\": \"<string>\",\n \"post_url\": \"<string>\",\n \"comment_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.madiad.com/v1/engagement/comments/create")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"profile_id\": \"<string>\",\n \"message\": \"<string>\",\n \"post_id\": \"<string>\",\n \"post_url\": \"<string>\",\n \"comment_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.madiad.com/v1/engagement/comments/create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"profile_id\": \"<string>\",\n \"message\": \"<string>\",\n \"post_id\": \"<string>\",\n \"post_url\": \"<string>\",\n \"comment_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}{
"error": {
"code": "unauthorized",
"message": "<string>"
}
}Authorizations
Your API key, sent as Authorization: Bearer <key>. One key manages every profile on the account.
Body
application/json
Id of the brand profile to act on. List them with GET /v1/profiles.
One channel key.
Available options:
tiktok, instagram, linkedin, youtube, facebook, x, threads, pinterest, reddit, bluesky, google_business, telegram, discord, slack, mastodon, nostr, lemmy, devto, hashnode, wordpress, whop, listmonk Text to send.
Id of the post on the channel.
Public URL of the post on the channel.
Id of the comment to act on.
Response
Success.
The response envelope is stable — a profile_id plus the payload — but its inner fields are not yet pinned down in this document.

