Home / Platforms / Instagram Graph
Instagram Graph API Stable

Instagram API

The Instagram Graph API is the exclusive official interface for programmatic Instagram access — content publishing, DM management, insights, comment moderation, and branded content. Business or Creator accounts only.

API Overview

2026 Edition

The Instagram Graph API is Meta's official API for Instagram Business and Creator accounts. Following the retirement of the Basic Display API in late 2024, all integrations must use the Graph API. It provides content publishing, comment moderation, DM inbox management, and detailed analytics.

2026 Additions: New is_ai_generated parameter for media transparency, Paid Partnership / Branded Content labels via the API, and expanded audience demographic metrics. Personal accounts are not supported.

Content Publishing
Publish photos, Reels, carousels, and Stories. Two-step container creation and publish workflow.
Comment Moderation
Read, reply, hide, and delete comments. Moderate mentions and tags on Business account posts.
DM Management
Manage Direct Messages (DMs) in a unified inbox. Respond to message threads programmatically (200 DMs/hr limit).
Insights & Analytics
Access post and account-level metrics, audience demographics (100+ followers required), and engagement data.

API Features

FeatureDescriptionRequired PermissionStatus
Photo PublishingPublish single images to the feedinstagram_business_content_publishAvailable
Reels PublishingPublish short-form video Reelsinstagram_business_content_publishAvailable
Carousel PublishingPublish multi-image/video carousel postsinstagram_business_content_publishAvailable
StoriesPublish Stories (24h ephemeral content)instagram_business_content_publishAvailable
AI Disclosure FlagMark content as AI-generated using is_ai_generated parameterinstagram_business_content_publishNew 2026
Branded Content APIPublish posts with Paid Partnership labels and brand partner tagsinstagram_branded_content_ads_brandNew 2026
Media InsightsRetrieve per-post engagement metricsinstagram_business_basicAvailable
Webhook EventsReal-time notifications for comments, mentions, and messagesWebhook subscription setupAvailable

Rate Limits

2026 Framework
Limit TypeValueWindowNotes
Per-User API Calls200 calls / hourRolling 1 hourHard cap — most endpoints
Publishing Cap100 posts / 24 hoursRolling 24 hoursPer Instagram account
Graph Call Budget (BUC)4,800 × ImpressionsRolling 24 hoursFor broader data retrieval endpoints
Automated DMs~200 messages / hourRolling 1 hourPer account

Use Webhooks instead of polling to minimize API calls. When rate limits are exceeded, the API returns HTTP 429. Implement exponential backoff with jitter in all retry logic.

Media Requirements

No Direct File Upload: The Instagram Graph API uses a container-based model. You must provide a publicly accessible URL to your media — Meta's servers fetch (curl) it directly. There is no direct file upload endpoint.

Content TypeFormatsMax SizeAspect RatioDuration
Feed PhotoJPG, PNG8 MB4:5 to 1.91:1—
Reels / VideoMP4, MOV (H.264, AAC)1 GB9:16 (preferred)3s – 15 min
Carousel ItemsJPG, PNG, MP4, MOV—1:1 recommended—
Stories PhotoJPG, PNG8 MB9:16 (1080×1920 px)—
Stories VideoMP4, MOV1 GB9:16Up to 60 seconds
Min Resolution320 pixels on the shortest side

Authentication & Access Requirements

RequirementDetails
Account TypeInstagram Business or Creator account required. Personal accounts not supported.
Facebook Page LinkInstagram account must be linked to a Facebook Page.
Auth MethodOAuth 2.0 via Meta's Facebook Login
App ReviewRequired for production permissions. Submit for review in the Meta App Dashboard.
Page Publishing Auth (PPA)If your linked Facebook Page requires PPA, it must be completed before the API will allow publishing.
2FARequired for accounts linked to apps performing sensitive actions.

Key Permission Scopes

instagram_business_basic instagram_business_content_publish instagram_business_manage_comments instagram_business_manage_messages instagram_branded_content_ads_brand pages_read_engagement

Quick Start Guide

1

Set Up Meta App & Permissions

Create a Meta App at developers.facebook.com, add Instagram Graph API product, and request required permissions. Ensure your Instagram account is Business/Creator and linked to a Facebook Page.

2

Step 1 — Create a Media Container

HTTP POST
POST https://graph.facebook.com/v26.0/{ig-user-id}/media
  ?image_url=https://your-public-server.com/image.jpg
  &caption=Hello+from+the+API
  &access_token=YOUR_ACCESS_TOKEN

Response returns a creation_id.

3

Step 2 — Publish the Container

HTTP POST
POST https://graph.facebook.com/v26.0/{ig-user-id}/media_publish
  ?creation_id=CREATION_ID
  &access_token=YOUR_ACCESS_TOKEN
4

Retrieve Post Insights

HTTP GET
GET https://graph.facebook.com/v26.0/{media-id}/insights
  ?metric=impressions,reach,likes
  &access_token=YOUR_ACCESS_TOKEN

Common Errors & Solutions

Error CodeMeaningCommon CauseSolution
190Invalid Access TokenExpired or revoked tokenRe-authenticate user and obtain a fresh long-lived token
4 (100)Publishing limit reachedExceeded 100 posts per 24-hour windowWait for the rolling 24-hour window to reset before publishing more
9007User not eligibleAccount is not a Business or Creator accountConvert Instagram account to Business or Creator type in the app settings
2207027Media not readyVideo container not yet processedPoll the container status field and only publish when STATUS = FINISHED
24PPA not completedPage Publishing Authorization not doneComplete PPA for the linked Facebook Page

Best Practices

Host Media on Public CDN

Always host your images and videos on a publicly accessible server or CDN. Meta's servers must be able to fetch the URL directly without authentication.

Poll Container Status

For video uploads, poll the container's status_code field before calling media_publish. Only publish when STATUS = FINISHED.

Subscribe to Webhooks

Use Webhooks for comment notifications and message events instead of polling to minimize API call consumption against the 200/hr rate limit.

Flag AI-Generated Content

Set is_ai_generated=true on all AI-created media when creating media containers. Required for policy compliance since 2026.