Gids

How to Automate Instagram Posts with an API

Instagram\'s official Graph API requires Facebook app review, a Business account linked to a Facebook Page, and a multi-step OAuth flow. Upload-Post handles all of that behind the scenes. One API call, one endpoint, and your Reel, photo, or carousel goes live. This guide covers everything you need to automate Instagram posting with real code examples.

Waarom Instagram-berichten automatiseren via API

If you have ever posted manually through the Instagram app, you know the drill: open the app, pick a file, write a caption, add hashtags, tag people, choose a cover image, and finally hit publish. Now multiply that by five posts a day across multiple client accounts.

The Instagram platformpagina explains what Upload-Post supports for Instagram specifically. The short version: you can post Reels, single photos, and carousels (multi-image posts) through a single social media API endpoint. No Facebook app review, no token refreshes, no Graph API complexity.

Instagram allows up to 50 uploads per 24 hours through the API, which is more than enough for most use cases. If you need to post across additional platforms simultaneously, see how to post to all platforms at once.

Post een Instagram Reel via API

Reels are the primary content format on Instagram. To post a video as a Reel, send a POST request to the upload endpoint with media_type set to REELS. You can also control how the Reel appears in the feed using share_mode.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorisatie: Apikey jouw-api-sleutel-hier" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Behind the scenes of our new product launch" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "share_mode=FEED_AND_REELS" \
  -F "audio_name=Original Audio" \
  -F "cover_url=https://example.com/cover.jpg"

Here is what each Instagram-specific parameter does:

  • media_type=REELS tells Instagram to treat this as a Reel rather than a regular feed video.
  • share_mode=FEED_AND_REELS publishes to both the Reels tab and the main feed. Use REELS_ENKEL to keep it out of the feed grid.
  • audio_name sets the name of the embedded audio track that viewers see on the Reel.
  • cover_url provides a custom cover image. Without it, Instagram picks a frame from the video.

Een succesvolle upload retourneert de job-ID en platformstatus:

{
  "success": true,
  "job_id": "job_reel_abc123",
  "platforms": {
    "instagram": {
      "status": "processing",
      "user": "mybrand"
    }
  }
}

You can also set share_to_feed=true or share_to_feed=false as an alternative to share_mode. Beide accomplish the same thing. Use thumb_offset to pick a specific frame from the video as the thumbnail (value in milliseconds).

Post foto\'s en carrousels

For single photos or carousel (multi-image) posts, use the /api/upload_photos endpoint. Upload multiple files using the photos[] parameter to create a carousel automatically.

curl -X POST https://api.upload-post.com/api/upload_photos \
  -H "Autorisatie: Apikey jouw-api-sleutel-hier" \
  -F "photos[][email protected]" \
  -F "photos[][email protected]" \
  -F "photos[][email protected]" \
  -F "user=mybrand" \
  -F "title=Our top 3 product picks this month" \
  -F "platform[]=instagram" \
  -F "instagram_first_comment=#productpicks #trending #shopnow"

When you send more than one file in photos[], Instagram creates a carousel post. Users swipe through the images in the order you uploaded them. A single file creates a standard photo post. Instagram supports up to 10 images per carousel.

You can use instagram_title to set a caption specific to Instagram when posting the same content to multiple platforms at once. This is useful when your Instagram caption needs different hashtags or mentions than what you use on other platforms.

Automatisch een eerste reactie plaatsen

The instagram_first_comment parameter automatically adds a comment to your post right after it goes live. This is one of the most popular Instagram strategies: keep your caption clean and move all your hashtags into the first comment.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorisatie: Apikey jouw-api-sleutel-hier" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Quick tutorial: how to use our app" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "instagram_first_comment=#tutorial #howto #apptips #tech #productdemo"

Why use a first comment instead of putting hashtags in the caption? Instagram\'s algorithm treats first-comment hashtags the same way as caption hashtags for discoverability, but your caption looks cleaner. Many brands and creators prefer this approach because it keeps the post visually focused on the message rather than a wall of hashtags.

Gebruik samenwerkers en gebruikerslabels

Instagram Collab posts let two accounts co-author a single piece of content. The post appears on both profiles, and engagement (likes, comments, shares) is shared. Use the collaborators parameter to invite collaborators.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorisatie: Apikey jouw-api-sleutel-hier" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Excited to announce our partnership with @partneraccount" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "collaborators=partneraccount,otheraccount" \
  -F "user_tags=partneraccount,photographer_jane" \
  -F "location_id=123456789"
  • collaborators takes a comma-separated list of Instagram usernames. The invited users receive a notification to accept the collaboration.
  • user_tags tags users in the post itself, similar to tagging people in a photo through the app.
  • location_id attaches a location to the post. You can find location IDs through the Instagram location search or the Facebook Places API.

Plan Instagram-berichten

Add scheduled_date to any upload request to publish at a future time. The date must be in ISO-8601 format, and you can optionally specify a timezone.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorisatie: Apikey jouw-api-sleutel-hier" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Good morning! New content dropping today." \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "scheduled_date=2025-09-15T09:00:00Z" \
  -F "timezone=America/New_York"

You can also use add_to_queue=true instead of a specific date. The queue system picks the next available time slot based on your configured schedule, which is ideal for batch uploading content without manually picking times. See the full scheduling guide for queue setup, editing scheduled posts, and managing your content calendar.

Automatiseer met Python

The official Python SDK makes it straightforward to build automation scripts. Install it with pip install upload-post and then use the UploadPostClient to interact with the API. For a complete walkthrough, check the Python automatiseringsgids.

Here is a full script that posts a Reel, uploads a photo carousel, and schedules content for the week:

from upload_post import UploadPostClient
from datetime import datetime, timedelta

client = UploadPostClient(api_key="your-api-key-here")

# 1. Post a Reel immediately
reel_response = client.upload_video(
    video_path="/path/to/reel.mp4",
    title="Nieuwe product rondleiding",
    user="mybrand",
    platforms=["instagram"],
    media_type="REELS",
    share_mode="FEED_AND_REELS",
    instagram_first_comment="#newproduct #walkthrough #tech"
)
print(f"Reel geüpload: {reel_response['job_id']}")

# 2. Post a carousel of photos
carousel_response = client.upload_photos(
    photo_paths=[
        "/path/to/photo1.jpg",
        "/path/to/photo2.jpg",
        "/path/to/photo3.jpg"
    ],
    title="Drie hoeken, één product.",
    user="mybrand",
    platforms=["instagram"],
    collaborators="partneraccount"
)
print(f"Carrousel geüpload: {carousel_response['job_id']}")

# 3. Schedule Reels for the next 7 days
videos = [
    "monday.mp4", "tuesday.mp4", "wednesday.mp4",
    "thursday.mp4", "friday.mp4", "saturday.mp4", "sunday.mp4"
]

for i, video in enumerate(videos):
    publish_date = (datetime.now() + timedelta(days=i + 1)).replace(
        hour=10, minute=0, second=0, microsecond=0
    )
    response = client.upload_video(
        video_path=f"/path/to/{video}",
        title=f"Day {i + 1} of our launch week series",
        user="mybrand",
        platforms=["instagram"],
        media_type="REELS",
        scheduled_date=publish_date.isoformat(),
        timezone="Europe/Madrid"
    )
    print(f"Scheduled {video} for {publish_date}: {response['job_id']}")

This script schedules one Reel per day at 10:00 AM Madrid time for an entire week. Adjust the hour, timezone, and file paths to match your workflow. For bulk upload scenarios, you can read video paths from a directory or a CSV file and loop through them the same way.

No-code automatisering: n8n en Make.com

If you prefer visual workflows over writing code, both n8n and Make.com work with Upload-Post out of the box.

n8n

n8n is an open-source workflow automation tool. You can use the HTTP Request node to call the Upload-Post API. We have a ready-made Instagram Reels n8n-sjabloon that reads video files from Google Drive, adds captions from a Google Sheet, and posts them as Reels automatically. Browse all available n8n templates for more setups.

Make.com

Make.com (formerly Integromat) uses a scenario-based approach. Add an HTTP module, configure it with the Upload-Post endpoint and your API key, and connect it to any trigger: new row in Google Sheets, new file in Dropbox, a scheduled timer, and so on. The result is the same as writing code, but with a drag-and-drop interface.

Beide tools support scheduling parameters (scheduled_date, add_to_queue), so you can build a complete Instagram content calendar without touching a terminal.

Instagram inhoudseisen

Upload-Post automatically adapts your content where possible (using the built-in FFmpeg API), but it helps to know what Instagram expects so you can optimize for quality.

Formaat Spec Details
Video (Reels) Max bestandsgrootte 1 GB
Formaten MP4, MOV
Beeldverhouding 9:16 recommended, 1:1 and 4:5 supported
Duur 3 seconds to 15 minutes
Resolutie 1080x1920 recommended
Foto Max bestandsgrootte 8 MB
Formaten JPEG, PNG
Beeldverhouding 1:1, 4:5, 1.91:1
Max afmetingen 1440x1440 (square), 1080x1350 (portrait)
Carrousel Max afbeeldingen 10 per post
Gemengde media Foto\'s en video\'s kunnen worden gecombineerd

Veelgestelde vragen

Werkt dit met persoonlijke Instagram-accounts?

No. Instagram\'s API only supports Business and Creator accounts. Personal accounts cannot be accessed through any official API. The good news is that switching to a Business or Creator account is free and takes about 30 seconds in the Instagram app settings. You do need to connect it to a Facebook Page, which Upload-Post handles during the account linking process.

Kan ik Instagram Stories via API plaatsen?

Instagram\'s official API does not support publishing Stories. This is a limitation imposed by Meta, not by Upload-Post. Stories can only be created through the Instagram app itself. If Stories support becomes available through the API in the future, Upload-Post will add it.

Zullen geautomatiseerde berichten mijn account shadowbannen?

No. Upload-Post uses Instagram\'s official Content Publishing API (the same API that Hootsuite, Buffer, and every other authorized tool uses). Your posts go through Instagram\'s official pipeline, so there is no risk of shadowbanning or account penalties. This is fundamentally different from browser automation or unofficial bots, which do violate Instagram\'s terms. If you are currently using a tool like Hootsuite or Later, Upload-Post is a developer-friendly alternative that uses the same official access.

Is er een gratis versie?

Yes. Every Upload-Post account includes 10 free uploads per month with no credit card required. That is enough to test the API, validate your workflow, and confirm everything works before committing to a paid plan. Check the social media holiday calendar to plan your first posts around upcoming events.

Begin vandaag met het automatiseren van Instagram-berichten

One API call. Reels, photos, carousels, first comments, collaborators, and scheduling. All handled for you.

Geen creditcard vereist. 10 gratis uploads inbegrepen.