curl --request POST \
--url https://api.madiad.com/v1/posts/photos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'profile_id=<string>' \
--form 'caption=<string>' \
--form 'title=<string>' \
--form 'photos=<string>' \
--form 'photo_urls=<string>' \
--form scheduled_at=2023-11-07T05:31:56Z \
--form 'timezone=<string>' \
--form add_to_queue=true \
--form 'facebook_page_id=<string>' \
--form 'pinterest_board_id=<string>' \
--form 'subreddit=<string>' \
--form 'reddit_title=<string>' \
--form 'first_comment=<string>' \
--form photos.items='@example-file'import requests
url = "https://api.madiad.com/v1/posts/photos"
files = { "photos.items": ("example-file", open("example-file", "rb")) }
payload = {
"profile_id": "<string>",
"caption": "<string>",
"title": "<string>",
"photos": "<string>",
"photo_urls": "<string>",
"scheduled_at": "2023-11-07T05:31:56Z",
"timezone": "<string>",
"add_to_queue": "true",
"facebook_page_id": "<string>",
"pinterest_board_id": "<string>",
"subreddit": "<string>",
"reddit_title": "<string>",
"first_comment": "<string>"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('profile_id', '<string>');
form.append('caption', '<string>');
form.append('title', '<string>');
form.append('photos', '<string>');
form.append('photo_urls', '<string>');
form.append('scheduled_at', '2023-11-07T05:31:56Z');
form.append('timezone', '<string>');
form.append('add_to_queue', 'true');
form.append('facebook_page_id', '<string>');
form.append('pinterest_board_id', '<string>');
form.append('subreddit', '<string>');
form.append('reddit_title', '<string>');
form.append('first_comment', '<string>');
form.append('photos.items', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.madiad.com/v1/posts/photos', 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/posts/photos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"profile_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photo_urls\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"scheduled_at\"\r\n\r\n2023-11-07T05:31:56Z\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"add_to_queue\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"facebook_page_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pinterest_board_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subreddit\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reddit_title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"first_comment\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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/posts/photos"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"profile_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photo_urls\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"scheduled_at\"\r\n\r\n2023-11-07T05:31:56Z\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"add_to_queue\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"facebook_page_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pinterest_board_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subreddit\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reddit_title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"first_comment\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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/posts/photos")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"profile_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photo_urls\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"scheduled_at\"\r\n\r\n2023-11-07T05:31:56Z\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"add_to_queue\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"facebook_page_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pinterest_board_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subreddit\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reddit_title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"first_comment\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.madiad.com/v1/posts/photos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"profile_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photo_urls\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"scheduled_at\"\r\n\r\n2023-11-07T05:31:56Z\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"add_to_queue\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"facebook_page_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pinterest_board_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subreddit\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reddit_title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"first_comment\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"status": "completed",
"profile_id": "<string>",
"platforms": [
"<string>"
],
"failed_platforms": [
"<string>"
],
"request_id": "<string>",
"job_id": "<string>",
"results": {}
}{
"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>"
}
}Publish a photo post
Publish one or more photos. Send as multipart/form-data to upload binaries in photos[], or as JSON when every image is a URL.
Per-channel overrides are accepted as extra fields and forwarded verbatim: <channel>_caption overrides the body and <channel>_title the title, for any channel in platforms.
curl --request POST \
--url https://api.madiad.com/v1/posts/photos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'profile_id=<string>' \
--form 'caption=<string>' \
--form 'title=<string>' \
--form 'photos=<string>' \
--form 'photo_urls=<string>' \
--form scheduled_at=2023-11-07T05:31:56Z \
--form 'timezone=<string>' \
--form add_to_queue=true \
--form 'facebook_page_id=<string>' \
--form 'pinterest_board_id=<string>' \
--form 'subreddit=<string>' \
--form 'reddit_title=<string>' \
--form 'first_comment=<string>' \
--form photos.items='@example-file'import requests
url = "https://api.madiad.com/v1/posts/photos"
files = { "photos.items": ("example-file", open("example-file", "rb")) }
payload = {
"profile_id": "<string>",
"caption": "<string>",
"title": "<string>",
"photos": "<string>",
"photo_urls": "<string>",
"scheduled_at": "2023-11-07T05:31:56Z",
"timezone": "<string>",
"add_to_queue": "true",
"facebook_page_id": "<string>",
"pinterest_board_id": "<string>",
"subreddit": "<string>",
"reddit_title": "<string>",
"first_comment": "<string>"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('profile_id', '<string>');
form.append('caption', '<string>');
form.append('title', '<string>');
form.append('photos', '<string>');
form.append('photo_urls', '<string>');
form.append('scheduled_at', '2023-11-07T05:31:56Z');
form.append('timezone', '<string>');
form.append('add_to_queue', 'true');
form.append('facebook_page_id', '<string>');
form.append('pinterest_board_id', '<string>');
form.append('subreddit', '<string>');
form.append('reddit_title', '<string>');
form.append('first_comment', '<string>');
form.append('photos.items', '{
"fileName": "example-file"
}');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.madiad.com/v1/posts/photos', 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/posts/photos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"profile_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photo_urls\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"scheduled_at\"\r\n\r\n2023-11-07T05:31:56Z\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"add_to_queue\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"facebook_page_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pinterest_board_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subreddit\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reddit_title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"first_comment\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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/posts/photos"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"profile_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photo_urls\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"scheduled_at\"\r\n\r\n2023-11-07T05:31:56Z\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"add_to_queue\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"facebook_page_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pinterest_board_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subreddit\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reddit_title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"first_comment\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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/posts/photos")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"profile_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photo_urls\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"scheduled_at\"\r\n\r\n2023-11-07T05:31:56Z\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"add_to_queue\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"facebook_page_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pinterest_board_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subreddit\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reddit_title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"first_comment\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.madiad.com/v1/posts/photos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"profile_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"caption\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photo_urls\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"scheduled_at\"\r\n\r\n2023-11-07T05:31:56Z\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"add_to_queue\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"facebook_page_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"pinterest_board_id\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subreddit\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"reddit_title\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"first_comment\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"photos.items\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n{\r\n \"fileName\": \"example-file\"\r\n}\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"status": "completed",
"profile_id": "<string>",
"platforms": [
"<string>"
],
"failed_platforms": [
"<string>"
],
"request_id": "<string>",
"job_id": "<string>",
"results": {}
}{
"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.
Headers
A key you generate per post, written down BEFORE the call. Replaying a completed key returns the earlier result instead of publishing again — from outside that looks exactly like being ignored. Reusing one for a DIFFERENT body answers idempotency_conflict.
Body
Id of the brand profile to act on. List them with GET /v1/profiles.
Channels to publish to. A comma-separated string is accepted as well. Only the channels listed here accept a photo post; any other channel is refused with 400.
tiktok, instagram, linkedin, facebook, x, threads, pinterest, reddit, bluesky, google_business, telegram, discord, mastodon, lemmy, wordpress The post BODY. This is NOT the post title: title (and the per-channel <channel>_title) is a separate field, and putting the body in it skips the caption-length check.
The post TITLE, shared across channels. YouTube, Reddit and Pinterest need one; <channel>_title overrides it for a single channel.
Photo files uploaded inline (multipart only). Mixable with photo_urls; uploaded files are ordered first.
https:// URLs of the photos. Downloaded server-side, so these are not subject to the 4.5 MB request-body cap that binary photos[] uploads are.
Publish at this time instead of now (ISO 8601). Pair with timezone.
IANA timezone for scheduled_at, e.g. Asia/Ho_Chi_Minh.
Place the post in the profile's posting queue instead of publishing now.
Which Facebook Page to publish to. IGNORED when the profile has a Page pinned (the pin wins) and DROPPED entirely by scheduled jobs.
REQUIRED when posting to Pinterest. Target Pinterest board. List them with GET /v1/connections/pinterest/boards.
REQUIRED when posting to Reddit. Target subreddit, without the r/ prefix.
REQUIRED when posting to Reddit. Post title on Reddit. Falls back to caption when absent.
Text posted as the first comment. Facebook Pages only.
Response
Success.
processing and scheduled are not outcomes yet — poll GET /v1/posts/status.
completed, partial, failed, processing, scheduled Present only when at least one channel refused.
Keyed by channel.
Show child attributes
Show child attributes

