NetworksInstagram

Instagram APIthrough Siar.

Feed posts, carousels, reels and stories for Instagram professional accounts, connected either through a linked Facebook Page or directly with Instagram Login.

At a glance

Account needed: An Instagram professional account (business or creator), connected through Facebook Login or Instagram Login.

ConnectionOAuth 2.0 in the browser
ChannelOptional: pick a channel after connecting
Post typespost, reel, story
Text length2,200 characters
Comment length2,200 characters
Media per postUp to 10

Media rules

KindFormatsMax sizeDurationOther
Imagejpeg8 MBn/aNone
Videomp4, mov300 MB3 s to 15 minNone

What Siar can do on Instagram

Comments and repliesYes
First commentYes
Edit a published postNo
Delete a published postNo
Edit a commentNo
Delete a commentYes
Import commentsYes
Post analyticsYes
Account analyticsYes
Post history importYes
Direct messagesYes

Siar can create comments and replies up to 2,200 characters, and import the comments people leave on your posts.

Publish a post

Put Instagram's payload under data.INSTAGRAM and list INSTAGRAM in socialAccountTypes. Add other networks to the same request to post to all of them at once.

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": "Instagram post",
    "postDate": "2026-11-02T09:00:00.000Z",
    "status": "SCHEDULED",
    "socialAccountTypes": [
      "INSTAGRAM"
    ],
    "data": {
      "INSTAGRAM": {
        "type": "POST",
        "text": "Hello from Siar",
        "uploadIds": [
          "UPLOAD_ID"
        ]
      }
    }
  }'

Instagram fields

  • type string default "POST"
    One of: POST REEL STORY
  • text string nullable
  • uploadIds string[] nullable
  • altText string nullable
  • thumbnailOffset number nullable default 0
  • thumbnail string nullable
  • shareToFeed boolean nullable default true
  • collaborators string[] nullable
  • autoFitImage boolean nullable default false
  • autoCropImage boolean nullable default false
  • tagged object[] nullable
    3 fields
    • username string required
    • x number ≥ 0≤ 1
    • y number ≥ 0≤ 1
  • carouselItems object[] nullable
    3 fields
    • uploadId string required
    • altText string nullable
    • tagged object[] nullable
      3 fields
      • username string required
      • x number required ≥ 0≤ 1
      • y number required ≥ 0≤ 1
  • locationId string nullable
  • trialParams object nullable
    1 field
    • graduationStrategy string required
      One of: MANUAL SS_PERFORMANCE
  • isPaidPartnership boolean nullable default false
  • brandedContentSponsors string[] nullable max 2 itemseach: min length 1each: max length 30
  • musicSoundInfo object nullable
    3 fields
    • musicSoundId string required min length 1
    • musicSoundVolume integer nullable ≥ 0≤ 100
    • videoOriginalSoundVolume integer nullable ≥ 0≤ 100
  • isAiGenerated boolean nullable default false

Daily caps

Per connected account, per UTC dayFreeProBusiness
Posts1050100
Comments350100

See pricing for monthly quotas. Enterprise uses the Business caps unless agreed otherwise.

Connecting an Instagram account

Siar sends the user to the network's consent page and stores the tokens it gets back, refreshing them before they expire. Use POST /social-account/connect from your own UI, or send your customer a hosted link from POST /social-account/create-portal-link; see connecting accounts.

Permissions requested

Siar requests only these scopes at connect time:

  • instagram_basic
  • instagram_content_publish
  • instagram_manage_comments
  • instagram_manage_insights
  • pages_show_list
  • pages_read_engagement
  • business_management
  • instagram_manage_messages
  • pages_messaging
  • instagram_business_basic
  • instagram_business_content_publish
  • instagram_business_manage_comments
  • instagram_business_manage_insights
  • instagram_business_manage_messages

Instagram-specific operations

These exist for Instagram only and live under /misc/instagram.

OperationEndpoint
Search for Instagram Business/Creator user by usernameGET /misc/instagram/tags
Search Instagram location IDsGET /misc/instagram/locations
Search Instagram audio assetsGET /misc/instagram/audio
Delete an Instagram commentDELETE /misc/instagram/comment

When Instagram says no

Siar relays Instagram's error code and message verbatim on the post, next to a status you can act on. The Instagram error reference covers 10 common cases with what each one means and the fix. Open the Instagram error reference.

Instagram API questions

What can I post to Instagram through the API?

post, reel, story. Feed posts, carousels, reels and stories for Instagram professional accounts, connected either through a linked Facebook Page or directly with Instagram Login.

How many Instagram posts can I publish per day?

Per connected account and UTC day: 10 on Free, 50 on Pro, 100 on Business. The caps keep the account within what Instagram tolerates.

Can I schedule Instagram posts?

Yes. Set postDate in the future and a status of SCHEDULED. Siar publishes at that time and sends a post.published webhook when the post reaches a final state.

How do I connect a Instagram account?

An Instagram professional account (business or creator), connected through Facebook Login or Instagram Login. Siar sends the user to the network's consent page and stores the tokens it gets back, refreshing them before they expire.

What do I do when Instagram rejects a post?

The post carries Instagram's own code and message. The Instagram error reference explains 10 common rejections and how to fix them.

Your first post isone request away.

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