Instagram API guide

Does Instagram have an API?

Does Instagram have an API? Yes. Meta provides official APIs for Instagram professional accounts: businesses and creators. You can publish media, read insights and manage supported conversations or comments with the right permissions. Start with the job you want to do, then choose the login path. There is no single API key that unlocks every Instagram account or action.

Does Instagram have an API for what you need?

“An Instagram integration” can mean several different jobs. Choose yours before choosing a library or paying for a tool.

Publish your content

For a professional account, start with Meta's content-publishing API. It covers more media types than Postdom's finished-Reel workflow.

See the Reel publishing sequence

Read insights or manage replies

Use the relevant insights, comment or messaging endpoints. The required permissions depend on the job and login path. Publishing access does not include everything.

Check Meta's capability table

Display a post on a website

Check the embed or oEmbed route for eligible public content. Showing a post is different from reading or managing an account through its API.

Read Meta's embedding requirements

Looking for personal-account access or a way to fetch any private profile? These professional-account APIs are not that service. A public post is not blanket permission to collect an account's data.

Which login path should you choose?

Both paths support professional accounts. Only the Facebook Login path requires a linked Facebook Page. Keep its token, host and permission instructions together.

PathAccount and tokenWhen to choose it
Instagram Logingraph.instagram.com

Business or Creator account; a linked Facebook Page is not required.

Instagram User access token

Start here for an Instagram-only integration when its supported actions cover your workflow.
Facebook Logingraph.facebook.com

Business or Creator account linked to a Facebook Page, with the required Page access.

Facebook User or Page token, depending on the endpoint. Publishing uses a Page token.

Use this path when your integration needs the linked Page or a supported feature such as hashtag search or partnership ads.

Instagram Login does not provide ads or tagging access. If those features matter, check the exact Facebook Login feature and permissions rather than switching hosts in an otherwise unchanged request. Meta's current configuration comparison.

Which publishing permission names should I look for?

Instagram Login uses instagram_business_basic and instagram_business_content_publish. Facebook Login publishing uses instagram_basic, instagram_content_publish and pages_read_engagement. Meta lists additional permissions for some Business Manager Page-role setups. These are publishing requirements, not a complete permission list for every feature. Check your publishing configuration.

How do you get API access?

  1. Check the account and the action

    Confirm that the account is Business or Creator. Write down the actual job: publishing a Reel, reading its insights or replying to comments. Check that job's endpoint and login-path requirements before building the connection.

  2. Create your Meta app and authorize the account

    Configure the chosen Instagram API setup in the Meta App Dashboard. Obtain the matching access token and only the permissions your feature needs. An account owner grants access through Meta; do not collect their Instagram password or put your app secret in browser code.

  3. Separate your own test account from customer access

    Standard Access fits your own or managed professional accounts under Meta's app-role setup. Serving accounts you do not own or manage requires Advanced Access, App Review and Business Verification. A successful test with your account is not permission to onboard every customer.

  4. Prove the whole user flow before launch

    For review, prepare a working integration, clear permission-specific instructions and a screencast that reviewers can follow. Confirm what the account owner granted, handle missing permissions, and test the result of the intended action. Approval of an app is not proof that a particular Reel was published.

An own-account integration can use Meta's documented dashboard token setup without implementing a customer login flow. It still needs the configured app and account authorization. Follow Meta's access overview and App Review requirements; do not assume a test token is a production onboarding flow.

Migrating an existing app? Meta says some migrations can receive corresponding Advanced Access automatically. Check your actual grants before submitting a new review; do not assume the migration gives you every permission.

Can you post a Reel through the API?

Yes. Suppose you have an approved product-demo video, a professional account and publishing permission. The useful distinction is prepared media versus a published Reel.

The sequence below describes Meta's URL-based publishing flow, not an executed account test or a copy-and-run script. Use your chosen host, supported API version and matching token. Review the audience, caption, rights and disclosures before the publish step.

  1. Create the Reel container

    POST /<IG_ID>/media

    Send the finished video URL with media_type=REELS and the intended caption and supported disclosures. For this URL-based flow, Meta must be able to fetch the media from a public server. Save the returned container ID; it is not a published Reel ID.

  2. Wait for the media to be ready

    GET /<CONTAINER_ID>?fields=status_code

    Read the original container's status. FINISHED means ready to publish, not already published. IN_PROGRESS means wait. Stop and investigate ERROR or EXPIRED rather than treating either as success.

  3. Publish the approved content

    POST /<IG_ID>/media_publish

    Send that container ID as creation_id only after the intended content and settings are approved. On success, Meta returns a media ID. Keep it separately from the container ID.

  4. Reconcile the outcome

    GET /<CONTAINER_ID>?fields=status_code

    If the publish response is missing or uncertain, check the original container before sending another publish request. PUBLISHED means its media was published. Keep the returned media ID and verify the intended account and result; avoid creating a duplicate to resolve a timeout.

Meta's publishing and status documentation explains the complete parameters. It also exposes content_publishing_limit for current publishing usage. There is no universal request allowance promised here.

What should I check when a request fails?
  • No access: check the account, login path, token and granted permissions. For a linked Page, unresolved Page Publishing Authorization can also prevent publication.
  • Media not ready: inspect the original container and whether Meta can fetch the video. Do not publish while it is still processing.
  • Uncertain publish response: reconcile the existing container and media before retrying. A timeout is not proof that nothing happened.
  • Scheduling needed: manage timing in a scheduling workflow. A media container is not a saved native-calendar appointment.

Is the Instagram API free, and what should you budget for?

Separate access from the cost of the system you use. The Meta access documents linked here do not establish a universal per-call price quote; this page does not promise free or unlimited API use.

Meta access and terms

Check the chosen product, permissions and current usage rules. A rate limit is not a price list, and buying a third-party tool does not waive eligibility or approval requirements.

Review the official requirements

Your integration

Budget for development, media hosting, token handling, monitoring and failed-request support. Your costs depend on how you build and operate the workflow.

A hosted service

A provider's subscription is its own charge, not an Instagram access fee. Check the included publishing workflow and usage before paying.

See Postdom's current plans

When does Postdom make sense?

Use Postdom when an agent should submit a finished Reel, respect human-owned approval and track the result. Build against Meta directly when you need the broader Instagram API features described above.

Postdom supports TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads, Bluesky. You supply the video; Postdom does not generate it. DMs, comment moderation, ads, Stories and carousels are outside this publishing workflow.

A human connects the eligible account. The agent reads the workspace and account, submits the accepted video URL or already-stored media handle, then follows the returned post ID. requires_approval needs a human decision; scheduled or publishing is not publication. Inspect the destination result.

More questions before you start

Can I use the API with a personal Instagram account?

The Instagram API configurations described here are for professional accounts: Business and Creator. Do not build personal-account publishing around them. If you only want to show an eligible public post on a website, check Meta's embed or oEmbed guidance instead of assuming that embedding grants account-management access.

Do I need a Facebook Page?

Not for Instagram API with Instagram Login. It supports professional accounts without a linked Facebook Page. Instagram API with Facebook Login requires the professional account to be linked to a Page. Pick the login path before following token or permission instructions.

Can I post Instagram Reels through an API?

Yes, with an eligible professional account and publishing permission. Meta's URL-based flow creates a Reel container, checks readiness, then publishes it. A container ID or FINISHED status does not mean the Reel is live; retain the published media ID and reconcile an uncertain response before retrying.

Is the Instagram API free?

Do not treat API access, a third-party subscription and running your integration as the same cost. The Meta access documentation cited here does not establish a universal per-call price quote, and this page does not promise free or unlimited use. Check the chosen Meta product's current terms and the service provider's pricing before committing.

Where do I get an Instagram API key?

For these integrations, you configure a Meta app and obtain an access token for the chosen login path and authorized account. The token has granted permissions; it is not a universal Instagram API key. Keep tokens and app secrets on your server and do not paste them into public code or an agent prompt.

Can the API schedule a Reel?

The publishing flow shown here publishes a prepared container; it is not a native calendar tutorial. A scheduling application must manage timing, authorization and the eventual publishing result. Use the Instagram scheduling guide for native app, Meta Business Suite and Postdom workflow steps.

Does Postdom expose every Instagram API feature?

No. Postdom publishes finished videos you supply to TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky. It does not generate the video or provide Instagram DMs, comments, ads, Stories or carousel publishing. Its released MCP Instagram helper sends an AI-generated disclosure and has no per-call private audience override; review the actual settings before using it.

The Meta links describe documented behavior, not a claim that this page tested your account or performed a real publication. The dated canvas recommendation above is a separate field-level record.