Endpoints
Get Post for Editing
Read a grouped post, its current revision, and whether it can still be edited.
GET
/
api
/
v1
/
posts
/
{id}
Get a post and its edit details
curl --request GET \
--url https://mallary.ai/api/v1/posts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://mallary.ai/api/v1/posts/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://mallary.ai/api/v1/posts/{id}', 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/posts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://mallary.ai/api/v1/posts/{id}"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://mallary.ai/api/v1/posts/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mallary.ai/api/v1/posts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "ok",
"data": {
"id": 123,
"revision": 1,
"editable": true,
"profile_id": "<string>",
"platforms": [
"twitter"
],
"message": "<string>",
"media": [
{
"url": "<string>",
"type": "<string>",
"thumbnail_url": "<string>",
"alt_text": "<string>"
}
],
"scheduled_at": "<string>",
"batch_id": "<string>",
"job_ids": [
123
],
"edit_block_reason": "<string>",
"destinations": [
{
"job_id": 123,
"platform": "twitter",
"profile_id": "<string>",
"account_name": "<string>",
"account_handle": "<string>"
}
],
"comments_under_post": [
{
"content": "<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,
"trialParams": {
"graduationStrategy": "MANUAL"
},
"isPaidPartnership": true,
"brandedContentSponsors": [
"<string>"
]
},
"threads": {
"message": "<string>",
"post_type": "text"
},
"twitter": {
"message": "<string>"
},
"x": {
"message": "<string>"
},
"linkedin": {
"message": "<string>",
"author_urn": "<string>"
},
"tiktok": {
"message": "<string>",
"post_type": "video",
"media_type": "PHOTO",
"post_mode": "DIRECT_POST",
"source": "FILE_UPLOAD",
"title": "<string>",
"description": "<string>",
"privacy_level": "PUBLIC_TO_EVERYONE",
"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>",
"post_type": "regular",
"title": "<string>",
"tags": [
"<string>"
],
"visibility": "public",
"categoryId": "22",
"madeForKids": false,
"containsSyntheticMedia": true,
"playlist_id": "<string>"
},
"pinterest": {
"message": "<string>",
"post_type": "image",
"title": "<string>",
"boardId": "<string>",
"link": "<string>",
"alt_text": "<string>"
},
"reddit": {
"message": "<string>",
"post_type": "text",
"subreddit": "<string>",
"subredditName": "<string>"
},
"bluesky": {
"message": "<string>",
"languages": [
"<string>"
],
"langs": [
"<string>"
]
}
}
}
}Use a Mallary job ID from the post. If the post has several platforms, any job ID from that group works.
The response includes
data.revision and data.editable. Read both before you edit the scheduled post. It also shows the saved profile, platforms, media, and schedule.
If you send profile_id in the query, use the post’s current profile ID. This query does not move the post to another profile.
curl 'https://mallary.ai/api/v1/posts/12345' \
-H "Authorization: Bearer $MALLARY_API_KEY"
Authorizations
Use Authorization: Bearer {api_key}
Path Parameters
Query Parameters
Optional current connection profile for the post. This does not change its destination profile.
Random public connection profile ID returned by GET /api/v1/profiles.
Pattern:
^[A-Za-z0-9]{6,32}$Example:
"AbC123xYz90"
Last modified on September 29, 2026
Was this page helpful?
Get a post and its edit details
curl --request GET \
--url https://mallary.ai/api/v1/posts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://mallary.ai/api/v1/posts/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://mallary.ai/api/v1/posts/{id}', 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/posts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://mallary.ai/api/v1/posts/{id}"
req, _ := http.NewRequest("GET", url, nil)
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.get("https://mallary.ai/api/v1/posts/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://mallary.ai/api/v1/posts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"status": "ok",
"data": {
"id": 123,
"revision": 1,
"editable": true,
"profile_id": "<string>",
"platforms": [
"twitter"
],
"message": "<string>",
"media": [
{
"url": "<string>",
"type": "<string>",
"thumbnail_url": "<string>",
"alt_text": "<string>"
}
],
"scheduled_at": "<string>",
"batch_id": "<string>",
"job_ids": [
123
],
"edit_block_reason": "<string>",
"destinations": [
{
"job_id": 123,
"platform": "twitter",
"profile_id": "<string>",
"account_name": "<string>",
"account_handle": "<string>"
}
],
"comments_under_post": [
{
"content": "<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,
"trialParams": {
"graduationStrategy": "MANUAL"
},
"isPaidPartnership": true,
"brandedContentSponsors": [
"<string>"
]
},
"threads": {
"message": "<string>",
"post_type": "text"
},
"twitter": {
"message": "<string>"
},
"x": {
"message": "<string>"
},
"linkedin": {
"message": "<string>",
"author_urn": "<string>"
},
"tiktok": {
"message": "<string>",
"post_type": "video",
"media_type": "PHOTO",
"post_mode": "DIRECT_POST",
"source": "FILE_UPLOAD",
"title": "<string>",
"description": "<string>",
"privacy_level": "PUBLIC_TO_EVERYONE",
"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>",
"post_type": "regular",
"title": "<string>",
"tags": [
"<string>"
],
"visibility": "public",
"categoryId": "22",
"madeForKids": false,
"containsSyntheticMedia": true,
"playlist_id": "<string>"
},
"pinterest": {
"message": "<string>",
"post_type": "image",
"title": "<string>",
"boardId": "<string>",
"link": "<string>",
"alt_text": "<string>"
},
"reddit": {
"message": "<string>",
"post_type": "text",
"subreddit": "<string>",
"subredditName": "<string>"
},
"bluesky": {
"message": "<string>",
"languages": [
"<string>"
],
"langs": [
"<string>"
]
}
}
}
}
