Mutation
Use the scheduleInstagramPost
mutation to schedule content to Instagram:
mutation ScheduleInstagramPost($input: ScheduleInstagramPostInput!) {
scheduleInstagramPost(input: $input) {
success
errors {
field
message
}
post {
id
socialAccount {
id
username
}
publishingStatus
caption
firstComment
collaborators
gallery {
id
galleryMediaSet {
id
media {
url
mimeType
}
}
}
submissions {
id
mediaType
shareToFeed
postAt
publishingMethod
}
}
}
}
Input Parameters
ScheduleInstagramPostInput
mediaName
or mediaUrl
.gallery
or mediaUrl
.gallery
or mediaName
.READY_TO_PUBLISH
, DRAFT
(default: READY_TO_PUBLISH
)InstagramPostSubmissionInputType
Each submission defines a specific posting schedule and format:
FEED_POST
, CAROUSEL
, REEL
, STORY
AUTOMATIC
, MANUAL
(default: AUTOMATIC
)Media Types
Instagram supports four different content types, each with specific requirements:
Feed Post
- Single image or video posted to the main Instagram feed
- Supports square (1:1), portrait (4:5), or landscape (1.91:1) aspect ratios
- Maximum file size: 30MB for videos, 8MB for images
Carousel
- Multiple images and/or videos in a single post (2-10 items)
- All media items appear in a swipeable gallery
- Mixed media types supported (images and videos together)
Reel
- Short-form vertical video content (9:16 aspect ratio recommended)
- Minimum duration: 3 seconds
- Can optionally be shared to the main feed using
shareToFeed: true
Story
- Temporary content that disappears after 24 hours
- Single image or video only
- Vertical format (9:16) recommended
Examples
Feed Post with Single Image
Schedule a basic Instagram feed post with an image from URL.
{
"input": {
"username": "myhandle",
"caption": "Beautiful sunset from our latest adventure! 🌅 #photography #sunset #travel",
"mediaUrl": "https://picsum.photos/seed/socialmedia/900/1600",
"submissions": [
{
"postAt": "2025-12-01T18:00:00Z",
"mediaType": "FEED_POST"
}
]
}
}
Carousel Post with Multiple Images
Schedule a carousel post with multiple images from your Content Library.
{
"input": {
"username": "myhandle",
"caption": "Behind the scenes from our latest photoshoot! Swipe to see more 📸✨",
"gallery": {
"galleryMediaSet": [
{
"order": 0,
"media": {
"id": "MEDIA_ID_1"
}
},
{
"order": 1,
"media": {
"id": "MEDIA_ID_2"
}
},
{
"order": 2,
"media": {
"id": "MEDIA_ID_3"
}
}
]
},
"submissions": [
{
"postAt": "2025-12-01T15:30:00Z",
"mediaType": "CAROUSEL"
}
]
}
}
Reel with Feed Sharing
Schedule a Reel that will also appear in the main feed.
{
"input": {
"username": "myhandle",
"caption": "Quick tutorial on our latest technique! Save this for later 💡 #tutorial #tips #howto",
"mediaName": "tutorial-video.mp4",
"submissions": [
{
"postAt": "2025-12-01T16:00:00Z",
"mediaType": "REEL",
"shareToFeed": true
}
]
}
}
Instagram Story
Schedule a temporary Story post.
{
"input": {
"username": "myhandle",
"mediaUrl": "https://picsum.photos/seed/socialmedia/900/1600",
"submissions": [
{
"postAt": "2025-12-01T14:00:00Z",
"mediaType": "STORY"
}
]
}
}
Post with Collaborators and First Comment
Schedule a post with tagged collaborators and an automatic first comment.
{
"input": {
"username": "myhandle",
"caption": "Amazing collaboration with some incredible creators! 🤝",
"firstComment": "Thanks to everyone who made this possible! Check out their profiles 👆",
"collaborators": ["collaborator1", "collaborator2", "collaborator3"],
"mediaUrl": "https://picsum.photos/seed/socialmedia/900/1600",
"submissions": [
{
"postAt": "2025-12-01T19:00:00Z",
"mediaType": "FEED_POST"
}
]
}
}
Response Types
Success Response
{
"data": {
"scheduleInstagramPost": {
"success": true,
"errors": [],
"post": {
"id": "123",
"socialAccount": {
"id": "456",
"username": "myhandle"
},
"publishingStatus": "READY_TO_PUBLISH",
"caption": "Beautiful sunset from our latest adventure! 🌅 #photography #sunset #travel",
"firstComment": "",
"collaborators": [],
"gallery": {
"id": "789",
"media": [
{
"id": "101",
"url": "https://cdn.example.com/sunset.jpg",
"type": "image"
}
]
},
"submissions": [
{
"id": "112",
"mediaType": "FEED_POST",
"shareToFeed": false,
"postAt": "2025-12-01T18:00:00Z",
"publishingMethod": "AUTOMATIC"
}
]
}
}
}
}
Error Response
{
"data": {
"scheduleInstagramPost": {
"success": false,
"errors": [
{
"field": "caption",
"message": "Instagram captions can have at most 30 hashtags, but yours has 35 (3-5 hashtags recommended)"
}
],
"post": null
}
}
}
Validation Rules
- Caption Length: Maximum 2,200 characters
- Hashtags: Maximum 30 hashtags per caption (3-5 recommended for better reach)
- Collaborators: Maximum 3 collaborators per post
- Carousel Media: 2-10 images/videos per carousel
- Reel Duration: Minimum 3 seconds for video content
- Aspect Ratios: Images must be between 0.558:1 and 1.92:1 (approximately)
- File Sizes: Videos max 30MB, images max 8MB
- GIF Support: GIFs are not supported on Instagram
- Story Limit: Stories can only contain one image or video
- Scheduling: Posts must be scheduled for future dates only
- Account Limits: Respects your plan's monthly post limits
Common Errors
The specified username is not connected to your Postpone account. Connect the account in your settings first.
Your caption contains too many hashtags. Instagram allows a maximum of 30 hashtags, but 3-5 hashtags are recommended for better engagement.
You must include media content. Use gallery
, mediaUrl
, or mediaName
to attach images or videos to your post.
GIF files cannot be posted to Instagram. Convert your GIF to MP4 video format instead.
Your image aspect ratio is outside Instagram's accepted range (0.558:1 to 1.92:1). Crop or resize your image to fit within these limits.
Instagram Reels support only single videos. For multiple videos, use a carousel post instead.
Your video is too short. Instagram Reels require a minimum duration of 3 seconds.
Instagram Stories support only single media items. Use separate submissions for multiple Story posts.
You've included too many media items. Instagram carousels support a maximum of 10 images or videos.
The postAt
timestamp must be in the future. Check your timezone settings.
You've tagged too many collaborators. Instagram allows a maximum of 3 collaborators per post.
You've reached your plan's Instagram post limit for the scheduled month. Upgrade your plan or schedule for a different month.