Feed, Reels, carousels. The Instagram Graph API specifics, what Meta accepts, and the validation we run before submit.
Instagram is the network most people connect first. We use the official Instagram Graph API, which means everything that publishes through Post Mate is treated identically to the Instagram app — algorithmically and from a policy standpoint.
What you can post
| Type | Supported | Notes |
|---|---|---|
| Single image | ✓ | JPG / PNG / WebP, up to 8 MB |
| Carousel | ✓ | 2-10 items, mixed image and video allowed |
| Reels | ✓ | Up to 90 seconds; MP4 H.264, 30fps max |
| Stories | — | Not exposed via API for third-party tools |
Caption rules
- Max length: 2,200 characters
- Up to 30 hashtags (Instagram strips anything beyond)
- @-mentions work when the mentioned account has a public profile
Media specs
Instagram is picky about video. Most rejection errors we see come from videos that the iPhone exports just fine but Meta refuses. The specs Meta currently accepts:
- Format: MP4 or MOV
- Codec: H.264 (HEVC support is patchy; stay with H.264)
- Frame rate: 23-30 FPS
- Aspect ratio: 9:16 (Reels), 4:5 or 1:1 (feed)
- Max length: 90 seconds (Reels), 60 seconds (feed)
- Max file size: 100 MB
If your iPhone is set to record in HEVC, swap the camera setting to "Most Compatible" under Settings → Camera → Formats. The H.265 file your phone exports otherwise will get rejected by Meta's ingestion even if QuickTime plays it back fine.
Carousel ordering
When you drop multiple files into the editor, the upload order is the order they appear in the post. Drag to reorder before you schedule — you can't change the order after the post is live.
For carousels mixing images and videos, Instagram requires every item to be the same aspect ratio. If you mix 1:1 and 4:5, Meta will crop the off-ratio items, sometimes ungracefully. Best to export all items at the same ratio before uploading.
Per-post settings we expose
- Alt text — per-image, max 100 characters. Used for screen readers and image search.
- Collab tag — Instagram's feature for letting a second account co-author a post. Currently we expose the textbox, but Meta's API surface for this is unstable; verify by checking the live post.
What we don't support yet
- Stories. Meta hasn't opened Stories publishing to third-party tools at all. Anyone claiming they can schedule Stories is using a browser-automation hack — risky for your account.
- Tagged products in shopping posts. Meta opened this API last year but the docs are still moving; we'll add it once it's stable.
Common rejection reasons
If a scheduled Instagram post fails, the error surfaced on the post in your dashboard usually matches one of these:
MediaUploadError: 'The video file is corrupted'— almost always an HEVC export issue. Re-export as H.264.Invalid hashtag— Meta blocks certain hashtags from publishing through the API. Remove the flagged one and reschedule.OAuthException: 'Application request limit reached'— rare. Means your IG account hit Meta's per-app rate limit. Wait an hour, then re-trigger.
For anything else, the error message we surface is verbatim from Meta — search the exact text and Meta's developer docs almost always have a hit.