Handleiding

Instagram posts automatiseren Reels, carrousels en Stories automatisch posten met één API-aanroep

Voor de officiële Graph API van Instagram heb je een app review bij Facebook nodig, een Business-account dat aan een Facebook-pagina gekoppeld is en een OAuth-flow met meerdere stappen. Upload-Post regelt dat allemaal op de achtergrond. Eén API-aanroep, één endpoint, en je Reel, foto, carrousel of Story staat online. Deze handleiding laat met echte codevoorbeelden zien wat je nodig hebt om Instagram-posts te automatiseren.

Waarom Instagram-posts automatiseren via een API

Als je ooit met de hand via de Instagram-app hebt gepost, ken je het rijtje: app openen, bestand kiezen, bijschrift schrijven, hashtags toevoegen, mensen taggen, een coverafbeelding kiezen en tot slot op publiceren tikken. Doe dat nu keer vijf posts per dag, voor meerdere klantaccounts.

Op de Instagram-platformpagina lees je wat Upload-Post specifiek voor Instagram ondersteunt. Kort gezegd: je post Reels, losse foto's, carrousels (posts met meerdere afbeeldingen) en Stories via één endpoint van de social media API. Geen app review bij Facebook, geen tokens vernieuwen, geen gedoe met de Graph API.

Upload-Post staat tot 50 Instagram-posts per account toe binnen een voortschrijdende periode van 24 uur, en dat is voor de meeste toepassingen ruim voldoende. Wil je tegelijk op andere platforms posten, lees dan hoe je op alle platforms tegelijk post.

Een Instagram Reel posten via de API

Reels zijn het belangrijkste contentformaat op Instagram. Om een video als Reel te posten, stuur je een POST-request naar het upload-endpoint met media_type op REELS. Met share_mode bepaal je ook hoe de Reel in de feed verschijnt.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Achter de schermen bij de lancering van ons nieuwe product" \
  -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"

Dit doet elke Instagram-specifieke parameter:

  • media_type=REELS zegt tegen Instagram dat dit een Reel is en geen gewone feedvideo.
  • share_mode=FEED_AND_REELS publiceert zowel in het Reels-tabblad als in de hoofdfeed. Gebruik REELS_ONLY om de Reel buiten het raster van je feed te houden.
  • audio_name geeft de naam van het ingesloten audiospoor dat kijkers bij de Reel zien.
  • cover_url geeft een eigen coverafbeelding. Zonder deze parameter kiest Instagram een frame uit de video.

Een geslaagde upload geeft de job-ID en de status per platform terug:

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

In plaats van share_mode kun je ook share_to_feed=true of share_to_feed=false gebruiken. Beide doen hetzelfde. Met thumb_offset kies je een specifiek frame uit de video als thumbnail (waarde in milliseconden).

Foto's en carrousels posten

Voor losse foto's of carrousels (posts met meerdere afbeeldingen) gebruik je het endpoint /api/upload_photos. Upload meerdere bestanden met de parameter photos[] en er ontstaat automatisch een carrousel.

curl -X POST https://api.upload-post.com/api/upload_photos \
  -H "Authorization: Apikey your-api-key-here" \
  -F "photos[][email protected]" \
  -F "photos[][email protected]" \
  -F "photos[][email protected]" \
  -F "user=mybrand" \
  -F "title=Onze top 3 producten van deze maand" \
  -F "platform[]=instagram" \
  -F "instagram_first_comment=#productpicks #trending #shopnow"

Stuur je meer dan één bestand in photos[], dan maakt Instagram er een carrouselpost van. Gebruikers swipen door de afbeeldingen in de volgorde waarin je ze hebt geüpload. Eén bestand wordt een gewone fotopost. Instagram ondersteunt tot 10 afbeeldingen per carrousel.

Met instagram_title stel je een bijschrift in dat alleen voor Instagram geldt als je dezelfde content tegelijk op meerdere platforms post. Handig als je bijschrift op Instagram andere hashtags of vermeldingen nodig heeft dan op de andere platforms.

Automatisch een eerste reactie plaatsen

De parameter instagram_first_comment plaatst automatisch een reactie onder je post zodra die online staat. Dat is een van de populairste strategieën op Instagram: houd je bijschrift schoon en zet al je hashtags in de eerste reactie.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Korte tutorial: zo gebruik je onze app" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "instagram_first_comment=#tutorial #howto #apptips #tech #productdemo"

Waarom een eerste reactie in plaats van hashtags in het bijschrift? Het algoritme van Instagram behandelt hashtags in de eerste reactie voor vindbaarheid hetzelfde als hashtags in het bijschrift, maar je bijschrift oogt rustiger. Veel merken en creators werken zo omdat de post dan draait om de boodschap en niet om een muur van hashtags.

Samenwerkers en gebruikerstags gebruiken

Met Collab-posts op Instagram maken twee accounts samen één stuk content. De post verschijnt op beide profielen en de interactie (likes, reacties, shares) wordt gedeeld. Gebruik de parameter collaborators om samenwerkers uit te nodigen.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=We werken vanaf nu samen met @partneraccount" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "collaborators=partneraccount,otheraccount" \
  -F "user_tags=partneraccount,photographer_jane" \
  -F "location_id=123456789"
  • collaborators neemt een door komma's gescheiden lijst met Instagram-gebruikersnamen. De uitgenodigde gebruikers krijgen een melding om de samenwerking te accepteren.
  • user_tags tagt gebruikers in de post zelf, net zoals je in de app mensen op een foto tagt.
  • location_id koppelt een locatie aan de post. Locatie-ID's vind je via de locatiezoekfunctie van Instagram of de Facebook Places API.

Instagram-posts inplannen

Voeg scheduled_date toe aan een upload-request om op een later moment te publiceren. De datum moet in ISO 8601-formaat staan, en je kunt optioneel een timezone opgeven.

curl -X POST https://api.upload-post.com/api/upload \
  -H "Authorization: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Goedemorgen! Vandaag komt er nieuwe content." \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "scheduled_date=2025-09-15T09:00:00Z" \
  -F "timezone=Europe/Amsterdam"

In plaats van een vaste datum kun je ook add_to_queue=true gebruiken. De wachtrij kiest dan het volgende vrije tijdslot uit je ingestelde schema, ideaal als je content in bulk uploadt zonder zelf tijden te kiezen. In de volledige handleiding over inplannen lees je hoe je de wachtrij instelt, ingeplande posts bewerkt en je contentkalender beheert.

Automatiseren met Python

Met de officiële Python-SDK schrijf je eenvoudig automatiseringsscripts. Installeer hem met pip install upload-post en gebruik daarna UploadPostClient om met de API te werken. Een volledige uitleg staat in de handleiding voor automatiseren met Python.

Hier is een volledig script dat een Reel post, een fotocarrousel uploadt en content voor de hele week inplant:

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="Rondleiding door ons nieuwe product",
    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"Dag {i + 1} van onze lanceringsweek",
        user="mybrand",
        platforms=["instagram"],
        media_type="REELS",
        scheduled_date=publish_date.isoformat(),
        timezone="Europe/Amsterdam"
    )
    print(f"Ingepland: {video} op {publish_date}: {response['job_id']}")

Dit script plant een hele week lang elke dag om 10:00 uur (Nederlandse tijd) één Reel in. Pas hour, timezone en de bestandspaden aan je eigen workflow aan. Voor bulkuploads lees je de videopaden uit een map of een CSV-bestand en loop je er op dezelfde manier doorheen.

Automatiseren zonder code: n8n en Make.com

Werk je liever met visuele workflows dan met code, dan werken zowel n8n als Make.com direct met Upload-Post.

n8n

n8n is een opensource tool voor workflowautomatisering. Met de node HTTP Request roep je de Upload-Post API aan. Er is een kant-en-klare n8n-template voor Instagram Reels die videobestanden uit Google Drive leest, bijschriften uit een Google Sheet haalt en ze automatisch als Reels post. Bekijk alle n8n-templates voor meer opzetten.

Make.com

Make.com (voorheen Integromat) werkt met scenario's. Voeg een HTTP-module toe, stel die in met het endpoint van Upload-Post en je API-key, en koppel hem aan een trigger naar keuze: een nieuwe rij in Google Sheets, een nieuw bestand in Dropbox, een timer, enzovoort. Het resultaat is hetzelfde als met code, maar dan met slepen en neerzetten.

Beide tools ondersteunen de parameters om in te plannen (scheduled_date, add_to_queue), dus je bouwt een complete Instagram-contentkalender zonder ooit een terminal te openen.

Eisen voor Instagram-content

Upload-Post past je content waar mogelijk automatisch aan (met de ingebouwde FFmpeg API), maar het helpt om te weten wat Instagram verwacht, zodat je op kwaliteit kunt optimaliseren.

Formaat Specificatie Details
Video (Reels) Max. bestandsgrootte 1 GB
Bestandsformaten MP4, MOV
Beeldverhouding 9:16 aanbevolen, 1:1 en 4:5 ondersteund
Duur 3 seconden tot 15 minuten
Resolutie 1080x1920 aanbevolen
Foto Max. bestandsgrootte 8 MB
Bestandsformaten JPEG, PNG
Beeldverhouding 1:1, 4:5, 1,91:1
Max. afmetingen 1440x1440 (vierkant), 1080x1350 (staand)
Carrousel Max. afbeeldingen 10 per post
Gemengde media Foto's en video's kunnen worden gecombineerd

Veelgestelde vragen

Werkt dit met persoonlijke Instagram-accounts?

Nee. De API van Instagram ondersteunt alleen Business- en Creator-accounts. Persoonlijke accounts zijn via geen enkele officiële API bereikbaar. Het goede nieuws: overstappen naar een Business- of Creator-account is gratis en kost ongeveer 30 seconden in de instellingen van de Instagram-app. Upload-Post koppelt via Instagram Login, dus een gekoppelde Facebook-pagina is niet nodig.

Kan ik Instagram Stories via de API posten?

Ja. Stuur media_type=STORIES mee met platform[]=instagram op het video-endpoint (/api/upload) of het foto-endpoint (/api/upload_photos). Stories negeren het bijschrift en kunnen geen locatietag hebben, en staande media in 9:16 werken het best.

Krijgt mijn account een shadowban door automatisch posten?

Upload-Post publiceert via de officiële Content Publishing API van Instagram, dezelfde route die andere geautoriseerde planningstools gebruiken, dus je posts worden niet als automatisering gemarkeerd zoals bij browserbots. Wat Instagram aan mensen laat zien, hangt nog steeds af van de content zelf. Daarnaast beperkt Upload-Post elk account tot 50 posts per voortschrijdende 24 uur, om ruim binnen de publicatielimieten van Instagram te blijven. Gebruik je nu een tool als Hootsuite of Later, dan is Upload-Post een alternatief voor developers dat dezelfde officiële toegang gebruikt.

Is er een gratis versie?

Ja. Elk Upload-Post-account heeft 10 gratis uploads per maand, zonder creditcard. Genoeg om de API te testen, je workflow te controleren en te zien of alles werkt voordat je voor een betaald abonnement kiest. Bekijk de social media feestdagenkalender om je eerste posts rond komende gebeurtenissen te plannen, of knip een banner in tegels met de Instagram grid maker en plan ze in de juiste volgorde in.

Automatiseer vandaag nog je Instagram-posts

Eén API-aanroep. Reels, foto's, carrousels, Stories, eerste reacties, samenwerkers en inplannen. Allemaal voor je geregeld.

Geen creditcard nodig. 10 gratis uploads inbegrepen.