Eranol LogoEranol
BlogCommunityDocumentationPricingSign In

General

OverviewGet Started

MCP Connectors

ClaudeChatGPT
Instagram PublishInstagram Scheduled — CancelInstagram Scheduled — ListTikTokTikTok Scheduled — CancelTikTok Scheduled — ListTikTok StatusX PublishX Scheduled — CancelX Scheduled — ListYouTube PublishYouTube Scheduled — CancelYouTube Scheduled — List
Add IntroAdd OutroAudio to VideoBackground AudioCaptions ApiComposeConcatConvert a video file to MP4Convert Audio to Mp3Convert Audio to wavConvert to JPGConvert to WebMConvert to WebPDenoiseEnhanceExtract audio track from a videoExtract images from a videoGenerate a GIF from a videoHighlightsImage TestMergeNotifyOverlayProgress BarReframeRemove SilenceThumbnailTrimVerifyWatermarkZoom
DeleteImage StatusStatusFFmpeg Results

Need help?

Contact Support

Instagram Publish

POST

Publish a photo or Reel to Instagram on behalf of a connected eranol.com account.

Overview

Publishes a photo or Reel to Instagram on behalf of a connected eranol.com account, using the Instagram Graph API. Can be published immediately or scheduled for a future time.

Before this endpoint can be used, the target account must have connected Instagram via Dashboard → Social Media → Connect (requires an Instagram Business or Creator account). Calls for an account with no active Instagram connection return a 400 error, and an expired connection returns 401.

Endpoint

POST https://eranol.com/api/v1/social/instagram/publish

Request body

FieldTypeRequiredNotes
media_typestringNoIMAGE or REEL. Defaults to REEL
media_urlstringYesImage or video URL. Must be hosted on eranol.com or www.eranol.com — external URLs are rejected
captionstringNoUp to 2200 characters
share_to_feedbooleanNoREELs only — also show the Reel on the main profile feed. Defaults to true
scheduled_forstringNoISO 8601 timestamp in the future — see Scheduling below

Scheduling

Pass scheduled_for as a future ISO 8601 timestamp to queue the post instead of publishing it right away. Scheduled posts:

  • Are charged credits immediately, at the time of scheduling (this guarantees funds are available when the post actually fires)
  • Return 202 Accepted instead of 200, with { success: true, scheduled: true, scheduled_post_id, scheduled_for } instead of the normal publish result
  • Are published automatically by a background dispatcher at the scheduled time, using the same publish logic as an immediate post
  • Can be listed and canceled — see the corresponding scheduled-posts endpoints for this platform

Example request

{
  "media_type": "REEL",
  "media_url": "https://www.eranol.com/uploads/video.mp4",
  "caption": "Check this out!",
  "share_to_feed": true
}

Example request — scheduled

{
  "media_type": "IMAGE",
  "media_url": "https://www.eranol.com/uploads/photo.jpg",
  "caption": "Dropping next week 📅",
  "scheduled_for": "2026-09-01T15:00:00Z"
}

Example response

{
  "success": true,
  "media_id": "17912345678901234"
}

Example response — scheduled

{
  "success": true,
  "scheduled": true,
  "scheduled_post_id": "a1b2c3d4-...",
  "scheduled_for": "2026-09-01T15:00:00.000Z"
}

Errors

StatusMeaning
400Missing/invalid media_url, invalid media_type, media_url not hosted on eranol.com, invalid/past scheduled_for, or the account has no connected Instagram account
401Missing or invalid API key, or the Instagram connection's token has expired — reconnect via the dashboard
402Insufficient credits
502Instagram's API rejected the container creation or publish step, or the video failed processing
504Video processing timed out (REELs only) — try again