Use casesPosting API

A posting API for every network you need

Siar accepts one request, validates a payload for each network in it, and publishes to all of them. You get a post id back immediately and a status that moves from scheduled to posted, or to an error you can read.

  • One request, several networks, each with its own text and options.
  • Validation against each network's limits before the post is accepted.
  • Per-network results on the post, with the network's own message when it fails.
  • Retry a failed post, delete a published one where the network allows it.

One request, many networks

A post lists the networks it targets in socialAccountTypes and carries one payload per network under data. The team decides which connected account each network resolves to, so the request itself never contains tokens.

A single post can mix very different shapes: an Instagram reel with a cover, a LinkedIn text post and a Bluesky link card.

curl -X POST "https://api.siaran.my/api/v1/post" \
  -H "x-api-key: $SIAR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "teamId": "TEAM_ID",
    "title": "Launch day",
    "postDate": "2026-11-02T09:00:00.000Z",
    "status": "SCHEDULED",
    "socialAccountTypes": [
      "INSTAGRAM",
      "LINKEDIN",
      "BLUESKY"
    ],
    "data": {
      "INSTAGRAM": {
        "type": "POST",
        "text": "We shipped. Details in the comments.",
        "uploadIds": [
          "UPLOAD_ID"
        ]
      },
      "LINKEDIN": {
        "text": "We shipped today. Here is what changed and why.",
        "uploadIds": [
          "UPLOAD_ID"
        ]
      },
      "BLUESKY": {
        "text": "We shipped today.",
        "uploadIds": [
          "UPLOAD_ID"
        ]
      }
    },
    "firstComment": {
      "INSTAGRAM": "Changelog: example.com/changelog"
    }
  }'

Validated before it leaves

Text length, media type, file size, duration and aspect ratio are checked against the limits of each network at create time. A request that cannot work returns 400 with an issues array whose path points at the field, for example data.INSTAGRAM.text.

Limits that depend on the connected account (TikTok creator privacy options, for instance) are read from the network and checked as well.

Statuses you can act on

A post moves through DRAFT, SCHEDULED, PROCESSING and ends at POSTED or ERROR; RETRYING and REVIEW cover transient states. See posting and statuses for what each means and what to poll or listen for.

Works with every supported network

Frequently asked questions

Can I post different text to each network?

Yes. Every network has its own entry under data, so text, hashtags, media and options can differ per network inside one post.

What happens if one network fails and the others succeed?

The post records a result per network. Networks that succeeded stay published; the failed ones carry the network's message, and a retry only re-sends what failed.

Can I edit a post after it is published?

Where the network allows editing through its API, yes, with PATCH /post/{id}. The platform pages list which networks support edit and delete.

Keep reading

Your first post isone request away.

The Free plan includes 20 posts and 200 uploads a month across 3 teams. No card needed.