Create Post
Create or schedule a post across one or more connected platforms.
curl --request POST \
--url https://mallary.ai/api/v1/post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"platforms": [],
"profile_id": "AbC123xYz90",
"media": [
{
"url": "<string>",
"type": "<string>",
"thumbnail_url": "<string>",
"alt_text": "<string>"
}
],
"comments_under_post": [
"<string>"
],
"scheduled_at": "<string>",
"scheduled_timezone": "<string>",
"auto_reply_enabled": true,
"platform_options": {
"facebook": {
"message": "<string>",
"post_type": "feed",
"link": "<string>",
"pageId": "<string>",
"title": "<string>"
},
"instagram": {
"message": "<string>",
"post_type": "feed",
"shareToFeed": true,
"isPaidPartnership": true,
"brandedContentSponsors": [
"<string>"
]
},
"threads": {
"message": "<string>"
},
"twitter": {
"message": "<string>"
},
"x": {
"message": "<string>"
},
"linkedin": {
"message": "<string>",
"author_urn": "<string>"
},
"tiktok": {
"message": "<string>",
"media_type": "PHOTO",
"post_mode": "DIRECT_POST",
"title": "<string>",
"description": "<string>",
"disable_comment": true,
"disable_duet": true,
"disable_stitch": true,
"video_cover_timestamp_ms": 1,
"auto_add_music": true,
"brand_content_toggle": true,
"brand_organic_toggle": true,
"is_aigc": true,
"photo_cover_index": 0
},
"youtube": {
"message": "<string>",
"title": "<string>",
"tags": [
"<string>"
],
"visibility": "public",
"categoryId": "22",
"madeForKids": false,
"containsSyntheticMedia": true,
"playlist_id": "<string>"
},
"pinterest": {
"message": "<string>",
"title": "<string>",
"boardId": "<string>",
"link": "<string>",
"alt_text": "<string>"
},
"reddit": {
"message": "<string>",
"subreddit": "<string>",
"subredditName": "<string>"
},
"bluesky": {
"message": "<string>",
"languages": [
"<string>"
],
"langs": [
"<string>"
]
}
},
"webhook_url": "<string>"
}
'import requests
url = "https://mallary.ai/api/v1/post"
payload = {
"message": "<string>",
"platforms": [],
"profile_id": "AbC123xYz90",
"media": [
{
"url": "<string>",
"type": "<string>",
"thumbnail_url": "<string>",
"alt_text": "<string>"
}
],
"comments_under_post": ["<string>"],
"scheduled_at": "<string>",
"scheduled_timezone": "<string>",
"auto_reply_enabled": True,
"platform_options": {
"facebook": {
"message": "<string>",
"post_type": "feed",
"link": "<string>",
"pageId": "<string>",
"title": "<string>"
},
"instagram": {
"message": "<string>",
"post_type": "feed",
"shareToFeed": True,
"isPaidPartnership": True,
"brandedContentSponsors": ["<string>"]
},
"threads": { "message": "<string>" },
"twitter": { "message": "<string>" },
"x": { "message": "<string>" },
"linkedin": {
"message": "<string>",
"author_urn": "<string>"
},
"tiktok": {
"message": "<string>",
"media_type": "PHOTO",
"post_mode": "DIRECT_POST",
"title": "<string>",
"description": "<string>",
"disable_comment": True,
"disable_duet": True,
"disable_stitch": True,
"video_cover_timestamp_ms": 1,
"auto_add_music": True,
"brand_content_toggle": True,
"brand_organic_toggle": True,
"is_aigc": True,
"photo_cover_index": 0
},
"youtube": {
"message": "<string>",
"title": "<string>",
"tags": ["<string>"],
"visibility": "public",
"categoryId": "22",
"madeForKids": False,
"containsSyntheticMedia": True,
"playlist_id": "<string>"
},
"pinterest": {
"message": "<string>",
"title": "<string>",
"boardId": "<string>",
"link": "<string>",
"alt_text": "<string>"
},
"reddit": {
"message": "<string>",
"subreddit": "<string>",
"subredditName": "<string>"
},
"bluesky": {
"message": "<string>",
"languages": ["<string>"],
"langs": ["<string>"]
}
},
"webhook_url": "<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({
message: '<string>',
platforms: [],
profile_id: 'AbC123xYz90',
media: [
{
url: '<string>',
type: '<string>',
thumbnail_url: '<string>',
alt_text: '<string>'
}
],
comments_under_post: ['<string>'],
scheduled_at: '<string>',
scheduled_timezone: '<string>',
auto_reply_enabled: true,
platform_options: {
facebook: {
message: '<string>',
post_type: 'feed',
link: '<string>',
pageId: '<string>',
title: '<string>'
},
instagram: {
message: '<string>',
post_type: 'feed',
shareToFeed: true,
isPaidPartnership: true,
brandedContentSponsors: ['<string>']
},
threads: {message: '<string>'},
twitter: {message: '<string>'},
x: {message: '<string>'},
linkedin: {message: '<string>', author_urn: '<string>'},
tiktok: {
message: '<string>',
media_type: 'PHOTO',
post_mode: 'DIRECT_POST',
title: '<string>',
description: '<string>',
disable_comment: true,
disable_duet: true,
disable_stitch: true,
video_cover_timestamp_ms: 1,
auto_add_music: true,
brand_content_toggle: true,
brand_organic_toggle: true,
is_aigc: true,
photo_cover_index: 0
},
youtube: {
message: '<string>',
title: '<string>',
tags: ['<string>'],
visibility: 'public',
categoryId: '22',
madeForKids: false,
containsSyntheticMedia: true,
playlist_id: '<string>'
},
pinterest: {
message: '<string>',
title: '<string>',
boardId: '<string>',
link: '<string>',
alt_text: '<string>'
},
reddit: {message: '<string>', subreddit: '<string>', subredditName: '<string>'},
bluesky: {message: '<string>', languages: ['<string>'], langs: ['<string>']}
},
webhook_url: '<string>'
})
};
fetch('https://mallary.ai/api/v1/post', 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://mallary.ai/api/v1/post",
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([
'message' => '<string>',
'platforms' => [
],
'profile_id' => 'AbC123xYz90',
'media' => [
[
'url' => '<string>',
'type' => '<string>',
'thumbnail_url' => '<string>',
'alt_text' => '<string>'
]
],
'comments_under_post' => [
'<string>'
],
'scheduled_at' => '<string>',
'scheduled_timezone' => '<string>',
'auto_reply_enabled' => true,
'platform_options' => [
'facebook' => [
'message' => '<string>',
'post_type' => 'feed',
'link' => '<string>',
'pageId' => '<string>',
'title' => '<string>'
],
'instagram' => [
'message' => '<string>',
'post_type' => 'feed',
'shareToFeed' => true,
'isPaidPartnership' => true,
'brandedContentSponsors' => [
'<string>'
]
],
'threads' => [
'message' => '<string>'
],
'twitter' => [
'message' => '<string>'
],
'x' => [
'message' => '<string>'
],
'linkedin' => [
'message' => '<string>',
'author_urn' => '<string>'
],
'tiktok' => [
'message' => '<string>',
'media_type' => 'PHOTO',
'post_mode' => 'DIRECT_POST',
'title' => '<string>',
'description' => '<string>',
'disable_comment' => true,
'disable_duet' => true,
'disable_stitch' => true,
'video_cover_timestamp_ms' => 1,
'auto_add_music' => true,
'brand_content_toggle' => true,
'brand_organic_toggle' => true,
'is_aigc' => true,
'photo_cover_index' => 0
],
'youtube' => [
'message' => '<string>',
'title' => '<string>',
'tags' => [
'<string>'
],
'visibility' => 'public',
'categoryId' => '22',
'madeForKids' => false,
'containsSyntheticMedia' => true,
'playlist_id' => '<string>'
],
'pinterest' => [
'message' => '<string>',
'title' => '<string>',
'boardId' => '<string>',
'link' => '<string>',
'alt_text' => '<string>'
],
'reddit' => [
'message' => '<string>',
'subreddit' => '<string>',
'subredditName' => '<string>'
],
'bluesky' => [
'message' => '<string>',
'languages' => [
'<string>'
],
'langs' => [
'<string>'
]
]
],
'webhook_url' => '<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://mallary.ai/api/v1/post"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"platforms\": [],\n \"profile_id\": \"AbC123xYz90\",\n \"media\": [\n {\n \"url\": \"<string>\",\n \"type\": \"<string>\",\n \"thumbnail_url\": \"<string>\",\n \"alt_text\": \"<string>\"\n }\n ],\n \"comments_under_post\": [\n \"<string>\"\n ],\n \"scheduled_at\": \"<string>\",\n \"scheduled_timezone\": \"<string>\",\n \"auto_reply_enabled\": true,\n \"platform_options\": {\n \"facebook\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"link\": \"<string>\",\n \"pageId\": \"<string>\",\n \"title\": \"<string>\"\n },\n \"instagram\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"shareToFeed\": true,\n \"isPaidPartnership\": true,\n \"brandedContentSponsors\": [\n \"<string>\"\n ]\n },\n \"threads\": {\n \"message\": \"<string>\"\n },\n \"twitter\": {\n \"message\": \"<string>\"\n },\n \"x\": {\n \"message\": \"<string>\"\n },\n \"linkedin\": {\n \"message\": \"<string>\",\n \"author_urn\": \"<string>\"\n },\n \"tiktok\": {\n \"message\": \"<string>\",\n \"media_type\": \"PHOTO\",\n \"post_mode\": \"DIRECT_POST\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"disable_comment\": true,\n \"disable_duet\": true,\n \"disable_stitch\": true,\n \"video_cover_timestamp_ms\": 1,\n \"auto_add_music\": true,\n \"brand_content_toggle\": true,\n \"brand_organic_toggle\": true,\n \"is_aigc\": true,\n \"photo_cover_index\": 0\n },\n \"youtube\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"visibility\": \"public\",\n \"categoryId\": \"22\",\n \"madeForKids\": false,\n \"containsSyntheticMedia\": true,\n \"playlist_id\": \"<string>\"\n },\n \"pinterest\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"boardId\": \"<string>\",\n \"link\": \"<string>\",\n \"alt_text\": \"<string>\"\n },\n \"reddit\": {\n \"message\": \"<string>\",\n \"subreddit\": \"<string>\",\n \"subredditName\": \"<string>\"\n },\n \"bluesky\": {\n \"message\": \"<string>\",\n \"languages\": [\n \"<string>\"\n ],\n \"langs\": [\n \"<string>\"\n ]\n }\n },\n \"webhook_url\": \"<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://mallary.ai/api/v1/post")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"platforms\": [],\n \"profile_id\": \"AbC123xYz90\",\n \"media\": [\n {\n \"url\": \"<string>\",\n \"type\": \"<string>\",\n \"thumbnail_url\": \"<string>\",\n \"alt_text\": \"<string>\"\n }\n ],\n \"comments_under_post\": [\n \"<string>\"\n ],\n \"scheduled_at\": \"<string>\",\n \"scheduled_timezone\": \"<string>\",\n \"auto_reply_enabled\": true,\n \"platform_options\": {\n \"facebook\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"link\": \"<string>\",\n \"pageId\": \"<string>\",\n \"title\": \"<string>\"\n },\n \"instagram\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"shareToFeed\": true,\n \"isPaidPartnership\": true,\n \"brandedContentSponsors\": [\n \"<string>\"\n ]\n },\n \"threads\": {\n \"message\": \"<string>\"\n },\n \"twitter\": {\n \"message\": \"<string>\"\n },\n \"x\": {\n \"message\": \"<string>\"\n },\n \"linkedin\": {\n \"message\": \"<string>\",\n \"author_urn\": \"<string>\"\n },\n \"tiktok\": {\n \"message\": \"<string>\",\n \"media_type\": \"PHOTO\",\n \"post_mode\": \"DIRECT_POST\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"disable_comment\": true,\n \"disable_duet\": true,\n \"disable_stitch\": true,\n \"video_cover_timestamp_ms\": 1,\n \"auto_add_music\": true,\n \"brand_content_toggle\": true,\n \"brand_organic_toggle\": true,\n \"is_aigc\": true,\n \"photo_cover_index\": 0\n },\n \"youtube\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"visibility\": \"public\",\n \"categoryId\": \"22\",\n \"madeForKids\": false,\n \"containsSyntheticMedia\": true,\n \"playlist_id\": \"<string>\"\n },\n \"pinterest\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"boardId\": \"<string>\",\n \"link\": \"<string>\",\n \"alt_text\": \"<string>\"\n },\n \"reddit\": {\n \"message\": \"<string>\",\n \"subreddit\": \"<string>\",\n \"subredditName\": \"<string>\"\n },\n \"bluesky\": {\n \"message\": \"<string>\",\n \"languages\": [\n \"<string>\"\n ],\n \"langs\": [\n \"<string>\"\n ]\n }\n },\n \"webhook_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mallary.ai/api/v1/post")
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 \"message\": \"<string>\",\n \"platforms\": [],\n \"profile_id\": \"AbC123xYz90\",\n \"media\": [\n {\n \"url\": \"<string>\",\n \"type\": \"<string>\",\n \"thumbnail_url\": \"<string>\",\n \"alt_text\": \"<string>\"\n }\n ],\n \"comments_under_post\": [\n \"<string>\"\n ],\n \"scheduled_at\": \"<string>\",\n \"scheduled_timezone\": \"<string>\",\n \"auto_reply_enabled\": true,\n \"platform_options\": {\n \"facebook\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"link\": \"<string>\",\n \"pageId\": \"<string>\",\n \"title\": \"<string>\"\n },\n \"instagram\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"shareToFeed\": true,\n \"isPaidPartnership\": true,\n \"brandedContentSponsors\": [\n \"<string>\"\n ]\n },\n \"threads\": {\n \"message\": \"<string>\"\n },\n \"twitter\": {\n \"message\": \"<string>\"\n },\n \"x\": {\n \"message\": \"<string>\"\n },\n \"linkedin\": {\n \"message\": \"<string>\",\n \"author_urn\": \"<string>\"\n },\n \"tiktok\": {\n \"message\": \"<string>\",\n \"media_type\": \"PHOTO\",\n \"post_mode\": \"DIRECT_POST\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"disable_comment\": true,\n \"disable_duet\": true,\n \"disable_stitch\": true,\n \"video_cover_timestamp_ms\": 1,\n \"auto_add_music\": true,\n \"brand_content_toggle\": true,\n \"brand_organic_toggle\": true,\n \"is_aigc\": true,\n \"photo_cover_index\": 0\n },\n \"youtube\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"visibility\": \"public\",\n \"categoryId\": \"22\",\n \"madeForKids\": false,\n \"containsSyntheticMedia\": true,\n \"playlist_id\": \"<string>\"\n },\n \"pinterest\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"boardId\": \"<string>\",\n \"link\": \"<string>\",\n \"alt_text\": \"<string>\"\n },\n \"reddit\": {\n \"message\": \"<string>\",\n \"subreddit\": \"<string>\",\n \"subredditName\": \"<string>\"\n },\n \"bluesky\": {\n \"message\": \"<string>\",\n \"languages\": [\n \"<string>\"\n ],\n \"langs\": [\n \"<string>\"\n ]\n }\n },\n \"webhook_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "queued",
"batch_id": "<string>",
"profile_id": "<string>",
"jobs": [
{
"platform": "twitter",
"jobId": "<string>",
"platform_post_id": "<string>",
"platform_post_url": "<string>"
}
],
"warnings": [
{
"platform": "twitter",
"code": "<string>",
"severity": "warning",
"message": "<string>"
}
]
}Connection Profiles
Useprofile_id to publish from a non-default connection profile. Omit it to use the default profile.
Connection profiles let one Mallary user connect multiple accounts on the same platform. Plan caps per platform are: Free 1, Starter 4, Pro 10, Business 50.
Scheduling
- If you already know the exact UTC or offset time, use
scheduled_atwith an absolute timestamp like2026-04-06T18:30:00Z. - To resolve the post in a specific timezone, use a local
scheduled_atlike2026-04-06T14:30plusscheduled_timezonewith an IANA timezone likeAmerica/New_York. - Mallary stores the resolved publish time in UTC and returns the original
scheduled_timezoneon grouped post reads.
Publish Results
Post creation is asynchronous. The create response returns one Mallary job ID per platform immediately, withplatform_post_id and platform_post_url set to null until that platform finishes publishing. After completion, use GET /api/v1/jobs/{id} or GET /api/v1/posts. These return the platform post ID and the public post URL that the platform exposes.
Video Thumbnails
Attach a custom thumbnail or cover to a video media item withthumbnail_url.
{
"message": "Launch walkthrough",
"platforms": ["youtube", "facebook", "instagram", "tiktok"],
"media": [
{
"url": "https://files.mallary.ai/uploads/launch-video.mp4",
"type": "video/mp4",
"thumbnail_url": "https://files.mallary.ai/uploads/launch-cover.jpg"
}
]
}
thumbnail_url must be a Mallary-hosted image URL, usually created with POST /api/v1/upload. Mallary skips a thumbnail that is unsupported for the platform, wrong for the post type, or rejected by the provider. It then continues to publish the post where possible.
To use a different cover for each platform, put thumbnail_url inside that platform’s options. For example, use platform_options.youtube.thumbnail_url for YouTube and platform_options.instagram.thumbnail_url for Instagram. Mallary adds each cover only to that platform’s video.
Current thumbnail behavior:
- YouTube regular videos: supported. Use a
jpg,jpeg, orpngimage up to 50 MB. Use 16:9 and at least 640px wide. - YouTube Shorts: YouTube may accept and store the image but show a video frame instead. Mallary warns you because the YouTube API cannot confirm the cover viewers will see. Use YouTube Studio to add a custom image, or use the YouTube app to choose a frame.
- Facebook feed videos: supported. Mallary accepts
jpg,jpeg, orpngthumbnail images up to 10 MB and retries without the thumbnail if Meta rejects it. - Instagram videos/Reels: supported with a Mallary-hosted
cover_url. Use a cover image that matches the video placement, such as 9:16 for Reels/stories. If Meta rejects a cover variant, Mallary falls back to video creation without the cover. - TikTok video posts: TikTok currently exposes frame-based cover selection through
video_cover_timestamp_ms, not arbitrary image thumbnails. Ifthumbnail_urlis supplied, Mallary does not sendvideo_cover_timestamp_msand lets TikTok use its default cover behavior. - TikTok photo posts:
thumbnail_urlcan choose the photo cover only when it exactly matches one of the image URLs inmedia[]. Mallary then uses that image index asphoto_cover_index. Mallary does not upload it as an extra photo.
Platform-Specific Media Rules
Mallary validates media before it queues a platform job. The public API and the current publishers enforce these media rules. For a simple guide to each setting, see Platform Posting Options.- Feed posts can be text-only, link-only, up to 10 images, or 1 video.
- Facebook does not allow mixing images and video in the same post.
- Feed images accept
jpg,jpeg,png,gif, andwebp. Feed video acceptsmp4andmov. - Facebook stories support 1 image or 1 video.
- Facebook Reels use 1 MP4 or MOV video. The video must be 9:16, at least 540 by 960 pixels, and 3 to 90 seconds long.
- Choose
feed,story, orreelwithplatform_options.facebook.post_type. platform_options.facebook.messagesets a Facebook-specific message. Omit it to use the top-levelmessage.
- Instagram requires media.
- The validator currently defines: feed = 1 image or 1 video, story = 1 image or 1 video, reel = 1 video, carousel = 2 to 10 mixed image/video items.
- The publisher uses the matching Instagram container flow for
feed,story,reel, andcarouselwhen selected throughplatform_options.instagram.post_type. platform_options.instagram.messagesets an Instagram-specific caption. Omit it to use the top-levelmessage.- For a Reel,
platform_options.instagram.shareToFeeddefaults totrue. Set it tofalseto keep the Reel in the Reels tab and off the profile feed. - To publish a Trial Reel, add
platform_options.instagram.trialParams.graduationStrategy. UseMANUALto choose later in Instagram, orSS_PERFORMANCEto let Instagram share it with followers if it performs well. Do not addshareToFeedto a Trial Reel request. - Set
platform_options.instagram.isPaidPartnershiptotrueto show the Paid partnership label on a feed post, Reel, or carousel. - Add up to two sponsor usernames or numeric user IDs with
platform_options.instagram.brandedContentSponsors. Sponsors turn on the Paid partnership label too. - Paid partnership options do not work with Stories. They require an Instagram account connected through Facebook Login.
- Instagram’s publishing API does not support story captions or follow-up comments. Include story text in the media itself.
- Instagram image uploads use
jpg,jpeg, orpng. Video uploads usemp4ormov. - Instagram Reels and single feed videos must be 3 seconds to 15 minutes long and no larger than 300 MB. Single feed videos publish as Reels shared to the feed.
- LinkedIn supports text-only posts, one image or GIF, or one MP4 video.
- Videos can be up to 1 GB (1,073,741,824 bytes) and 3 seconds to 30 minutes long. Do not mix images and video.
- Upload media to Mallary first. Use the returned
files.mallary.aiURL orstorageKey. - Mallary uploads the video to LinkedIn and waits for processing before it publishes the post.
- LinkedIn image attachments accept
jpg,jpeg,png, orgif. platform_options.linkedin.messagesets a LinkedIn-specific message. Omit it to use the top-levelmessage.
Threads
- Threads supports four posting shapes:
text,image,video, andcarousel. - Text posts are text-only and cannot include media.
- Image posts support exactly 1 image in
jpg,jpeg,png, orwebp. - Video posts support exactly 1 video in
mp4ormov. - Carousel posts support 2 to 20 supported media items total.
platform_options.threads.post_typecan betext,image,video, orcarousel.- If you omit
platform_options.threads.post_type, Mallary chooses from the payload: no media =text, one image =image, one video =video, multiple supported media items =carousel. platform_options.threads.messagesets a Threads-specific message. Omit it to use the top-levelmessage.- Threads currently supports
comments_under_post.
YouTube
- YouTube requires exactly one video.
regularvideo supports one video up to 12 hours and up to 256 GB.shortssupports one video up to 3 minutes. Use vertical video.- YouTube posting does not support images.
platform_options.youtube.messagesets a YouTube-specific description/default-title source. Omit it to use the top-levelmessage.platform_options.youtube.titlesets the YouTube title and takes precedence over the first line of the effective message.platform_options.youtube.tagsadds video tags. Each tag can use up to 100 characters, and YouTube allows 500 characters across the full tag list after counting separators.platform_options.youtube.containsSyntheticMediaacceptstrueorfalse. Set it totruewhen the video contains realistic AI-generated or altered content that could look real. YouTube may show a disclosure label.platform_options.youtube.playlist_idadds the new video to an existing playlist owned by the connected YouTube channel. Mallary checks the playlist before upload.
TikTok
- TikTok video posts support one video file in
mp4,mov, orwebm. - TikTok photo posts support up to 35 images in
jpg,jpeg, orwebp. platform_options.tiktok.post_typecan bevideoorphoto.platform_options.tiktok.post_modecan beDIRECT_POSTorMEDIA_UPLOAD.- TikTok defaults to
DIRECT_POST, which publishes the post through Mallary. - Use
MEDIA_UPLOADonly when you want Mallary to send the upload to the TikTok inbox. The job staysaction_requireduntil you finish the post in TikTok and attach its final TikTok URL. - For TikTok video posts,
platform_options.tiktok.sourcecan beFILE_UPLOADorPULL_FROM_URL. - For TikTok photo posts, TikTok only allows
PULL_FROM_URL. - For TikTok
PULL_FROM_URL, Mallary only accepts media already hosted on the Mallary CDN (https://files.mallary.ai/...). platform_options.tiktok.messagesets a TikTok-specific caption/title fallback. Omit it to use the top-levelmessage.platform_options.tiktok.titlesets the TikTok title and takes precedence over the effective message where TikTok accepts a title.platform_options.tiktok.descriptionsets the TikTok photo description.- Direct-post TikTok options include
privacy_level,disable_comment,disable_duet,disable_stitch,video_cover_timestamp_ms,auto_add_music,brand_content_toggle,brand_organic_toggle,is_aigc, andphoto_cover_indexwhere applicable. - TikTok posts do not currently support
comments_under_post.
- Pinterest requires exactly one image or GIF, or exactly one video.
- Pinterest does not allow mixing image and video in the same Pin.
- Image Pins accept one
jpg,jpeg,png,webp, orgiffile up to 32 MB. - Video Pins accept one
mp4ormovfile, 4 seconds to 15 minutes, up to 2 GB. - A Pinterest board is required. Send
boardId, or use the board saved with the Pinterest connection. platform_options.pinterest.messagesets a Pinterest-specific description/default title source. Omit it to use the top-levelmessage. Pinterest allows 800 characters in a description. Mallary shortens longer descriptions to fit.
textandlinkposts do not upload media through the Mallary API.imageposts require one image or GIF up to 20 MB.- The current public API path does not support Reddit video upload. To point at externally hosted video, use a link post.
subredditorsubredditNameis required in platform options.platform_options.reddit.messagesets a Reddit-specific title/text source. Omit it to use the top-levelmessage.
Bluesky
- Bluesky supports a text-only post, up to four images, or one video.
- Images can be
jpg,jpeg,png, orwebp, up to 2 MB each. - Video must be one
mp4file, up to 300 MB. Bluesky may apply a daily video limit to an account. - A Bluesky post can have up to 300 characters.
platform_options.bluesky.messagesets a Bluesky-specific message. Omit it to use the top-levelmessage.platform_options.bluesky.languagesadds up to three language codes.langsis also accepted.- Add
alt_textto a media item to describe an image or video for people who use screen readers. - Bluesky supports up to three
comments_under_postreplies.
X
- X allows up to 4 images, or 1 video, or 1 GIF.
- X does not allow mixing images and video in the same post.
- GIFs cannot be combined with other attachments.
- X images accept
jpg,jpeg,png,webp, andgif. Video acceptsmp4ormov. - X video limits depend on the connected X account. Standard accounts can use videos up to 20 minutes and 8 GB. Eligible Premium or verified accounts can use videos up to 125 minutes and 16 GB. Mallary checks the connected account before accepting a video above the standard limits.
- Mallary’s current upload endpoint accepts files up to 5 GB. This upload limit still applies even when X allows a larger file for the connected account.
platform_options.x.messageorplatform_options.twitter.messagesets an X-specific message. Omit it to use the top-levelmessage.
Authorizations
Use Authorization: Bearer {api_key}
Headers
Optional idempotency key to prevent duplicate submissions.
Body
11Supported publishing platform identifier.
twitter, x, facebook, instagram, linkedin, youtube, tiktok, pinterest, reddit, threads, bluesky Connection profile to publish from. Omit to use the default profile.
^[A-Za-z0-9]{6,32}$"AbC123xYz90"
Media URLs obtained from using the /api/v1/upload endpoint.
Show child attributes
Show child attributes
Up to 3 follow-up comments/replies under the main post when supported by the target platform/format.
3Optional scheduled publish timestamp. Send an absolute timestamp like 2026-04-06T18:30:00Z, or send a local datetime like 2026-04-06T14:30 together with scheduled_timezone.
Optional IANA timezone such as America/New_York. When provided with a local scheduled_at that omits an offset, Mallary resolves the wall-clock time in this timezone and stores the resulting UTC publish time.
Optional per-post override for AI auto-replies.
Optional per-platform overrides.
Show child attributes
Show child attributes
Optional callback URL for completion notifications.
Was this page helpful?
curl --request POST \
--url https://mallary.ai/api/v1/post \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"platforms": [],
"profile_id": "AbC123xYz90",
"media": [
{
"url": "<string>",
"type": "<string>",
"thumbnail_url": "<string>",
"alt_text": "<string>"
}
],
"comments_under_post": [
"<string>"
],
"scheduled_at": "<string>",
"scheduled_timezone": "<string>",
"auto_reply_enabled": true,
"platform_options": {
"facebook": {
"message": "<string>",
"post_type": "feed",
"link": "<string>",
"pageId": "<string>",
"title": "<string>"
},
"instagram": {
"message": "<string>",
"post_type": "feed",
"shareToFeed": true,
"isPaidPartnership": true,
"brandedContentSponsors": [
"<string>"
]
},
"threads": {
"message": "<string>"
},
"twitter": {
"message": "<string>"
},
"x": {
"message": "<string>"
},
"linkedin": {
"message": "<string>",
"author_urn": "<string>"
},
"tiktok": {
"message": "<string>",
"media_type": "PHOTO",
"post_mode": "DIRECT_POST",
"title": "<string>",
"description": "<string>",
"disable_comment": true,
"disable_duet": true,
"disable_stitch": true,
"video_cover_timestamp_ms": 1,
"auto_add_music": true,
"brand_content_toggle": true,
"brand_organic_toggle": true,
"is_aigc": true,
"photo_cover_index": 0
},
"youtube": {
"message": "<string>",
"title": "<string>",
"tags": [
"<string>"
],
"visibility": "public",
"categoryId": "22",
"madeForKids": false,
"containsSyntheticMedia": true,
"playlist_id": "<string>"
},
"pinterest": {
"message": "<string>",
"title": "<string>",
"boardId": "<string>",
"link": "<string>",
"alt_text": "<string>"
},
"reddit": {
"message": "<string>",
"subreddit": "<string>",
"subredditName": "<string>"
},
"bluesky": {
"message": "<string>",
"languages": [
"<string>"
],
"langs": [
"<string>"
]
}
},
"webhook_url": "<string>"
}
'import requests
url = "https://mallary.ai/api/v1/post"
payload = {
"message": "<string>",
"platforms": [],
"profile_id": "AbC123xYz90",
"media": [
{
"url": "<string>",
"type": "<string>",
"thumbnail_url": "<string>",
"alt_text": "<string>"
}
],
"comments_under_post": ["<string>"],
"scheduled_at": "<string>",
"scheduled_timezone": "<string>",
"auto_reply_enabled": True,
"platform_options": {
"facebook": {
"message": "<string>",
"post_type": "feed",
"link": "<string>",
"pageId": "<string>",
"title": "<string>"
},
"instagram": {
"message": "<string>",
"post_type": "feed",
"shareToFeed": True,
"isPaidPartnership": True,
"brandedContentSponsors": ["<string>"]
},
"threads": { "message": "<string>" },
"twitter": { "message": "<string>" },
"x": { "message": "<string>" },
"linkedin": {
"message": "<string>",
"author_urn": "<string>"
},
"tiktok": {
"message": "<string>",
"media_type": "PHOTO",
"post_mode": "DIRECT_POST",
"title": "<string>",
"description": "<string>",
"disable_comment": True,
"disable_duet": True,
"disable_stitch": True,
"video_cover_timestamp_ms": 1,
"auto_add_music": True,
"brand_content_toggle": True,
"brand_organic_toggle": True,
"is_aigc": True,
"photo_cover_index": 0
},
"youtube": {
"message": "<string>",
"title": "<string>",
"tags": ["<string>"],
"visibility": "public",
"categoryId": "22",
"madeForKids": False,
"containsSyntheticMedia": True,
"playlist_id": "<string>"
},
"pinterest": {
"message": "<string>",
"title": "<string>",
"boardId": "<string>",
"link": "<string>",
"alt_text": "<string>"
},
"reddit": {
"message": "<string>",
"subreddit": "<string>",
"subredditName": "<string>"
},
"bluesky": {
"message": "<string>",
"languages": ["<string>"],
"langs": ["<string>"]
}
},
"webhook_url": "<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({
message: '<string>',
platforms: [],
profile_id: 'AbC123xYz90',
media: [
{
url: '<string>',
type: '<string>',
thumbnail_url: '<string>',
alt_text: '<string>'
}
],
comments_under_post: ['<string>'],
scheduled_at: '<string>',
scheduled_timezone: '<string>',
auto_reply_enabled: true,
platform_options: {
facebook: {
message: '<string>',
post_type: 'feed',
link: '<string>',
pageId: '<string>',
title: '<string>'
},
instagram: {
message: '<string>',
post_type: 'feed',
shareToFeed: true,
isPaidPartnership: true,
brandedContentSponsors: ['<string>']
},
threads: {message: '<string>'},
twitter: {message: '<string>'},
x: {message: '<string>'},
linkedin: {message: '<string>', author_urn: '<string>'},
tiktok: {
message: '<string>',
media_type: 'PHOTO',
post_mode: 'DIRECT_POST',
title: '<string>',
description: '<string>',
disable_comment: true,
disable_duet: true,
disable_stitch: true,
video_cover_timestamp_ms: 1,
auto_add_music: true,
brand_content_toggle: true,
brand_organic_toggle: true,
is_aigc: true,
photo_cover_index: 0
},
youtube: {
message: '<string>',
title: '<string>',
tags: ['<string>'],
visibility: 'public',
categoryId: '22',
madeForKids: false,
containsSyntheticMedia: true,
playlist_id: '<string>'
},
pinterest: {
message: '<string>',
title: '<string>',
boardId: '<string>',
link: '<string>',
alt_text: '<string>'
},
reddit: {message: '<string>', subreddit: '<string>', subredditName: '<string>'},
bluesky: {message: '<string>', languages: ['<string>'], langs: ['<string>']}
},
webhook_url: '<string>'
})
};
fetch('https://mallary.ai/api/v1/post', 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://mallary.ai/api/v1/post",
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([
'message' => '<string>',
'platforms' => [
],
'profile_id' => 'AbC123xYz90',
'media' => [
[
'url' => '<string>',
'type' => '<string>',
'thumbnail_url' => '<string>',
'alt_text' => '<string>'
]
],
'comments_under_post' => [
'<string>'
],
'scheduled_at' => '<string>',
'scheduled_timezone' => '<string>',
'auto_reply_enabled' => true,
'platform_options' => [
'facebook' => [
'message' => '<string>',
'post_type' => 'feed',
'link' => '<string>',
'pageId' => '<string>',
'title' => '<string>'
],
'instagram' => [
'message' => '<string>',
'post_type' => 'feed',
'shareToFeed' => true,
'isPaidPartnership' => true,
'brandedContentSponsors' => [
'<string>'
]
],
'threads' => [
'message' => '<string>'
],
'twitter' => [
'message' => '<string>'
],
'x' => [
'message' => '<string>'
],
'linkedin' => [
'message' => '<string>',
'author_urn' => '<string>'
],
'tiktok' => [
'message' => '<string>',
'media_type' => 'PHOTO',
'post_mode' => 'DIRECT_POST',
'title' => '<string>',
'description' => '<string>',
'disable_comment' => true,
'disable_duet' => true,
'disable_stitch' => true,
'video_cover_timestamp_ms' => 1,
'auto_add_music' => true,
'brand_content_toggle' => true,
'brand_organic_toggle' => true,
'is_aigc' => true,
'photo_cover_index' => 0
],
'youtube' => [
'message' => '<string>',
'title' => '<string>',
'tags' => [
'<string>'
],
'visibility' => 'public',
'categoryId' => '22',
'madeForKids' => false,
'containsSyntheticMedia' => true,
'playlist_id' => '<string>'
],
'pinterest' => [
'message' => '<string>',
'title' => '<string>',
'boardId' => '<string>',
'link' => '<string>',
'alt_text' => '<string>'
],
'reddit' => [
'message' => '<string>',
'subreddit' => '<string>',
'subredditName' => '<string>'
],
'bluesky' => [
'message' => '<string>',
'languages' => [
'<string>'
],
'langs' => [
'<string>'
]
]
],
'webhook_url' => '<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://mallary.ai/api/v1/post"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"platforms\": [],\n \"profile_id\": \"AbC123xYz90\",\n \"media\": [\n {\n \"url\": \"<string>\",\n \"type\": \"<string>\",\n \"thumbnail_url\": \"<string>\",\n \"alt_text\": \"<string>\"\n }\n ],\n \"comments_under_post\": [\n \"<string>\"\n ],\n \"scheduled_at\": \"<string>\",\n \"scheduled_timezone\": \"<string>\",\n \"auto_reply_enabled\": true,\n \"platform_options\": {\n \"facebook\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"link\": \"<string>\",\n \"pageId\": \"<string>\",\n \"title\": \"<string>\"\n },\n \"instagram\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"shareToFeed\": true,\n \"isPaidPartnership\": true,\n \"brandedContentSponsors\": [\n \"<string>\"\n ]\n },\n \"threads\": {\n \"message\": \"<string>\"\n },\n \"twitter\": {\n \"message\": \"<string>\"\n },\n \"x\": {\n \"message\": \"<string>\"\n },\n \"linkedin\": {\n \"message\": \"<string>\",\n \"author_urn\": \"<string>\"\n },\n \"tiktok\": {\n \"message\": \"<string>\",\n \"media_type\": \"PHOTO\",\n \"post_mode\": \"DIRECT_POST\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"disable_comment\": true,\n \"disable_duet\": true,\n \"disable_stitch\": true,\n \"video_cover_timestamp_ms\": 1,\n \"auto_add_music\": true,\n \"brand_content_toggle\": true,\n \"brand_organic_toggle\": true,\n \"is_aigc\": true,\n \"photo_cover_index\": 0\n },\n \"youtube\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"visibility\": \"public\",\n \"categoryId\": \"22\",\n \"madeForKids\": false,\n \"containsSyntheticMedia\": true,\n \"playlist_id\": \"<string>\"\n },\n \"pinterest\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"boardId\": \"<string>\",\n \"link\": \"<string>\",\n \"alt_text\": \"<string>\"\n },\n \"reddit\": {\n \"message\": \"<string>\",\n \"subreddit\": \"<string>\",\n \"subredditName\": \"<string>\"\n },\n \"bluesky\": {\n \"message\": \"<string>\",\n \"languages\": [\n \"<string>\"\n ],\n \"langs\": [\n \"<string>\"\n ]\n }\n },\n \"webhook_url\": \"<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://mallary.ai/api/v1/post")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"platforms\": [],\n \"profile_id\": \"AbC123xYz90\",\n \"media\": [\n {\n \"url\": \"<string>\",\n \"type\": \"<string>\",\n \"thumbnail_url\": \"<string>\",\n \"alt_text\": \"<string>\"\n }\n ],\n \"comments_under_post\": [\n \"<string>\"\n ],\n \"scheduled_at\": \"<string>\",\n \"scheduled_timezone\": \"<string>\",\n \"auto_reply_enabled\": true,\n \"platform_options\": {\n \"facebook\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"link\": \"<string>\",\n \"pageId\": \"<string>\",\n \"title\": \"<string>\"\n },\n \"instagram\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"shareToFeed\": true,\n \"isPaidPartnership\": true,\n \"brandedContentSponsors\": [\n \"<string>\"\n ]\n },\n \"threads\": {\n \"message\": \"<string>\"\n },\n \"twitter\": {\n \"message\": \"<string>\"\n },\n \"x\": {\n \"message\": \"<string>\"\n },\n \"linkedin\": {\n \"message\": \"<string>\",\n \"author_urn\": \"<string>\"\n },\n \"tiktok\": {\n \"message\": \"<string>\",\n \"media_type\": \"PHOTO\",\n \"post_mode\": \"DIRECT_POST\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"disable_comment\": true,\n \"disable_duet\": true,\n \"disable_stitch\": true,\n \"video_cover_timestamp_ms\": 1,\n \"auto_add_music\": true,\n \"brand_content_toggle\": true,\n \"brand_organic_toggle\": true,\n \"is_aigc\": true,\n \"photo_cover_index\": 0\n },\n \"youtube\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"visibility\": \"public\",\n \"categoryId\": \"22\",\n \"madeForKids\": false,\n \"containsSyntheticMedia\": true,\n \"playlist_id\": \"<string>\"\n },\n \"pinterest\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"boardId\": \"<string>\",\n \"link\": \"<string>\",\n \"alt_text\": \"<string>\"\n },\n \"reddit\": {\n \"message\": \"<string>\",\n \"subreddit\": \"<string>\",\n \"subredditName\": \"<string>\"\n },\n \"bluesky\": {\n \"message\": \"<string>\",\n \"languages\": [\n \"<string>\"\n ],\n \"langs\": [\n \"<string>\"\n ]\n }\n },\n \"webhook_url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mallary.ai/api/v1/post")
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 \"message\": \"<string>\",\n \"platforms\": [],\n \"profile_id\": \"AbC123xYz90\",\n \"media\": [\n {\n \"url\": \"<string>\",\n \"type\": \"<string>\",\n \"thumbnail_url\": \"<string>\",\n \"alt_text\": \"<string>\"\n }\n ],\n \"comments_under_post\": [\n \"<string>\"\n ],\n \"scheduled_at\": \"<string>\",\n \"scheduled_timezone\": \"<string>\",\n \"auto_reply_enabled\": true,\n \"platform_options\": {\n \"facebook\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"link\": \"<string>\",\n \"pageId\": \"<string>\",\n \"title\": \"<string>\"\n },\n \"instagram\": {\n \"message\": \"<string>\",\n \"post_type\": \"feed\",\n \"shareToFeed\": true,\n \"isPaidPartnership\": true,\n \"brandedContentSponsors\": [\n \"<string>\"\n ]\n },\n \"threads\": {\n \"message\": \"<string>\"\n },\n \"twitter\": {\n \"message\": \"<string>\"\n },\n \"x\": {\n \"message\": \"<string>\"\n },\n \"linkedin\": {\n \"message\": \"<string>\",\n \"author_urn\": \"<string>\"\n },\n \"tiktok\": {\n \"message\": \"<string>\",\n \"media_type\": \"PHOTO\",\n \"post_mode\": \"DIRECT_POST\",\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"disable_comment\": true,\n \"disable_duet\": true,\n \"disable_stitch\": true,\n \"video_cover_timestamp_ms\": 1,\n \"auto_add_music\": true,\n \"brand_content_toggle\": true,\n \"brand_organic_toggle\": true,\n \"is_aigc\": true,\n \"photo_cover_index\": 0\n },\n \"youtube\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"visibility\": \"public\",\n \"categoryId\": \"22\",\n \"madeForKids\": false,\n \"containsSyntheticMedia\": true,\n \"playlist_id\": \"<string>\"\n },\n \"pinterest\": {\n \"message\": \"<string>\",\n \"title\": \"<string>\",\n \"boardId\": \"<string>\",\n \"link\": \"<string>\",\n \"alt_text\": \"<string>\"\n },\n \"reddit\": {\n \"message\": \"<string>\",\n \"subreddit\": \"<string>\",\n \"subredditName\": \"<string>\"\n },\n \"bluesky\": {\n \"message\": \"<string>\",\n \"languages\": [\n \"<string>\"\n ],\n \"langs\": [\n \"<string>\"\n ]\n }\n },\n \"webhook_url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "queued",
"batch_id": "<string>",
"profile_id": "<string>",
"jobs": [
{
"platform": "twitter",
"jobId": "<string>",
"platform_post_id": "<string>",
"platform_post_url": "<string>"
}
],
"warnings": [
{
"platform": "twitter",
"code": "<string>",
"severity": "warning",
"message": "<string>"
}
]
}
