Skip to main content
POST
Instagram-posts publish

Authorizations

Authorization
string
header
required

A personal API key (adside_pat_…) or a token from adside login. Either carries the permissions of the person it belongs to.

Path Parameters

workspaceId
string
required
Minimum string length: 1

Body

application/json
format
enum<string>
required

image: one image in the feed. carousel: 2 to 20 images and videos in one post. reel: one video. story: one image or video for 24 hours.

Available options:
image,
carousel,
reel,
story
media
object[]
required

The files, in the order they appear. One for image, reel and story; 2 to 20 for carousel. Images that aren't a JPEG are converted, and videos are converted to Instagram's MP4 when needed; feed and carousel images must already be 4:5 to 1.91:1 (nothing is cropped).

Required array length: 1 - 20 elements
text
string

The caption, exactly as it will appear: up to 2200 characters, 30 hashtags and 20 mentions. It can't be edited after posting. Not on Stories.

Maximum string length: 2200
collaborators
string[]

Up to 3 public professional accounts invited as collaborators. Not on Stories.

Maximum array length: 3

An Instagram username, with or without @

Pattern: ^@?[A-Za-z0-9._]{1,30}$
location_id
string

The id of a Facebook Page that has a location. Not on Stories.

Pattern: ^\d+$
user_tags
object[]

Accounts tagged on a Reel (username only) or a Story. On image posts and carousels, tag each image in media[].user_tags instead.

Maximum array length: 20
share_to_feed
boolean

Reels only: false keeps the Reel to the Reels tab. Instagram shows it on the Feed too by default.

cover
object

Reels only: a cover image. Exactly one of asset_id or url.

cover_time_ms
integer

Reels only: the frame to use as the cover, in milliseconds from the start. Not with cover.

Required range: 0 <= x <= 9007199254740991
audio_name
string

Reels only: the name the Reel's original audio gets.

Minimum string length: 1
trial
object

Reels only: a trial Reel, shown to non-followers first.

instagram_account_id
string

Omit it: the post goes to this workspace's Instagram account, and any other account is refused.

Pattern: ^\d+$
ai_generated
boolean

Meta's AI label. Omit it: it is on when any file was generated or derived from a generated Asset.

allow_duplicate
boolean
default:false

By default, the same post to the same account within 24 hours returns that publication instead of posting again. Set true only when the person wants a second post, or after checking the profile following an unknown outcome.

wait_seconds
integer
default:180

Seconds to wait for the post to go live (or fail) before answering. Default 180, max 240. Leave the default: one call usually returns the live post. 0 answers at once.

Required range: 0 <= x <= 240
confirmationToken
string

Response

200 - application/json

Success