Create a new post
curl --request POST \
--url https://app.autoposting.ai/api-proxy/posts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"brandSlug": "acme-corp",
"text": "Exciting news from Acme! 🚀",
"platforms": [
"x",
"linkedin"
],
"scheduledAt": "2025-02-01T10:00:00Z"
}
'import requests
url = "https://app.autoposting.ai/api-proxy/posts"
payload = {
"brandSlug": "acme-corp",
"text": "Exciting news from Acme! 🚀",
"platforms": ["x", "linkedin"],
"scheduledAt": "2025-02-01T10:00:00Z"
}
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({
brandSlug: 'acme-corp',
text: 'Exciting news from Acme! 🚀',
platforms: ['x', 'linkedin'],
scheduledAt: '2025-02-01T10:00:00Z'
})
};
fetch('https://app.autoposting.ai/api-proxy/posts', 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://app.autoposting.ai/api-proxy/posts",
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([
'brandSlug' => 'acme-corp',
'text' => 'Exciting news from Acme! 🚀',
'platforms' => [
'x',
'linkedin'
],
'scheduledAt' => '2025-02-01T10:00:00Z'
]),
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://app.autoposting.ai/api-proxy/posts"
payload := strings.NewReader("{\n \"brandSlug\": \"acme-corp\",\n \"text\": \"Exciting news from Acme! 🚀\",\n \"platforms\": [\n \"x\",\n \"linkedin\"\n ],\n \"scheduledAt\": \"2025-02-01T10:00:00Z\"\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://app.autoposting.ai/api-proxy/posts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"brandSlug\": \"acme-corp\",\n \"text\": \"Exciting news from Acme! 🚀\",\n \"platforms\": [\n \"x\",\n \"linkedin\"\n ],\n \"scheduledAt\": \"2025-02-01T10:00:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autoposting.ai/api-proxy/posts")
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 \"brandSlug\": \"acme-corp\",\n \"text\": \"Exciting news from Acme! 🚀\",\n \"platforms\": [\n \"x\",\n \"linkedin\"\n ],\n \"scheduledAt\": \"2025-02-01T10:00:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "post_01HXYZ",
"brandSlug": "acme-corp",
"text": "Exciting news from Acme! 🚀",
"platforms": [
"x",
"linkedin"
],
"status": "scheduled",
"scheduledAt": "2025-02-01T10:00:00Z",
"media": [],
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
}{
"success": false,
"error": "unauthorized",
"message": "Missing or invalid API key."
}Posts
Create a new post
POST
/
posts
Create a new post
curl --request POST \
--url https://app.autoposting.ai/api-proxy/posts \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"brandSlug": "acme-corp",
"text": "Exciting news from Acme! 🚀",
"platforms": [
"x",
"linkedin"
],
"scheduledAt": "2025-02-01T10:00:00Z"
}
'import requests
url = "https://app.autoposting.ai/api-proxy/posts"
payload = {
"brandSlug": "acme-corp",
"text": "Exciting news from Acme! 🚀",
"platforms": ["x", "linkedin"],
"scheduledAt": "2025-02-01T10:00:00Z"
}
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({
brandSlug: 'acme-corp',
text: 'Exciting news from Acme! 🚀',
platforms: ['x', 'linkedin'],
scheduledAt: '2025-02-01T10:00:00Z'
})
};
fetch('https://app.autoposting.ai/api-proxy/posts', 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://app.autoposting.ai/api-proxy/posts",
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([
'brandSlug' => 'acme-corp',
'text' => 'Exciting news from Acme! 🚀',
'platforms' => [
'x',
'linkedin'
],
'scheduledAt' => '2025-02-01T10:00:00Z'
]),
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://app.autoposting.ai/api-proxy/posts"
payload := strings.NewReader("{\n \"brandSlug\": \"acme-corp\",\n \"text\": \"Exciting news from Acme! 🚀\",\n \"platforms\": [\n \"x\",\n \"linkedin\"\n ],\n \"scheduledAt\": \"2025-02-01T10:00:00Z\"\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://app.autoposting.ai/api-proxy/posts")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"brandSlug\": \"acme-corp\",\n \"text\": \"Exciting news from Acme! 🚀\",\n \"platforms\": [\n \"x\",\n \"linkedin\"\n ],\n \"scheduledAt\": \"2025-02-01T10:00:00Z\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autoposting.ai/api-proxy/posts")
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 \"brandSlug\": \"acme-corp\",\n \"text\": \"Exciting news from Acme! 🚀\",\n \"platforms\": [\n \"x\",\n \"linkedin\"\n ],\n \"scheduledAt\": \"2025-02-01T10:00:00Z\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "post_01HXYZ",
"brandSlug": "acme-corp",
"text": "Exciting news from Acme! 🚀",
"platforms": [
"x",
"linkedin"
],
"status": "scheduled",
"scheduledAt": "2025-02-01T10:00:00Z",
"media": [],
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
}{
"success": false,
"error": "unauthorized",
"message": "Missing or invalid API key."
}Authorizations
bearerAuthapiKeyHeader
API key as Authorization: Bearer sk-social-...
Body
application/json
Slug of the brand to post from.
Example:
"acme-corp"
Post content text.
Example:
"Exciting news from Acme! 🚀"
Target platforms.
Available options:
x, linkedin, instagram, threads, youtube Example:
["x", "linkedin"]
ISO 8601 datetime to schedule the post. Omit to save as draft.
Example:
"2025-02-01T10:00:00Z"
Media attachments.
Show child attributes
Show child attributes
Additional tweet content for X threads. Each element is a subsequent tweet in the thread.
Origin source of the post (e.g., dashboard, api, agent).
Map of platform to array of specific account IDs to post from. If omitted, all connected accounts for the brand are used.
Show child attributes
Show child attributes
Example:
{
"x": ["account-id-1"],
"linkedin": ["account-id-2"]
}
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I

