Skip to main content
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"
}
'
{
  "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"
  }
}

Authorizations

Authorization
string
header
required

API key as Authorization: Bearer sk-social-...

Body

application/json
brandSlug
string
required

Slug of the brand to post from.

Example:

"acme-corp"

text
string
required

Post content text.

Example:

"Exciting news from Acme! 🚀"

platforms
enum<string>[]
required

Target platforms.

Available options:
x,
linkedin,
instagram,
threads,
youtube
Example:
["x", "linkedin"]
scheduledAt
string<date-time>

ISO 8601 datetime to schedule the post. Omit to save as draft.

Example:

"2025-02-01T10:00:00Z"

media
object[]

Media attachments.

thread
string[]

Additional tweet content for X threads. Each element is a subsequent tweet in the thread.

source
string

Origin source of the post (e.g., dashboard, api, agent).

targetAccountIds
object

Map of platform to array of specific account IDs to post from. If omitted, all connected accounts for the brand are used.

Example:
{
"x": ["account-id-1"],
"linkedin": ["account-id-2"]
}
instagramOptions
object
threadsOptions
object
youtubeOptions
object

Response

Post created.

success
boolean
required
data
object
required