2,417 389
juicer.io/instagram/api
Instagram posts, as JSON.
One key returns an account's posts and Reels, public posts on a hashtag and profile data as the same normalized JSON as 14 other networks. No Meta developer app of your own, no permissions review, no token refresh.
curl "https://api.juicer.io/v1/data/posts?platforms=Instagram&term=yourbrand" -H "Authorization: Bearer $JUICER_API_KEY"
AI agents ready
Copy this prompt into the agent of your choice and get going right away.
I want to pull Instagram data through the Juicer API. Work from the official docs, not from memory.
1. Read https://developers.juicer.io first (or connect its docs MCP server, https://developers.juicer.io/mcp, no auth needed). The Quickstart and Authentication pages explain how to get going without a human signing up: POST /v1/authorize with an email returns a temporary API key, and a free Sandbox plan is available for a permanent one.
2. Then use the Juicer MCP server at https://api.juicer.io/mcp if you can, or the REST API at https://api.juicer.io/v1 with the key as a bearer token.
3. For Instagram: look up an account's posts and Reels with platforms=Instagram and the username, public posts with a #hashtag, and resolve a profile with the profiles lookup. Follow the docs for term types and cursor pagination.
Task: resolve the account <yourbrand>, fetch its 10 latest posts and summarize the engagement.
- Free Sandbox tier
- No Meta app review
- Cursor pagination
- MCP server included
Two ways in
Data API for any public account. Integrations API for yours.
Both live behind the same key and return the same post shape. Pick by whether you manage the account.
Data API Connection-free
Look up a public account's posts and Reels, a hashtag or a profile on demand with GET /data/posts and /data/profiles. Nothing to connect, fresh results per request, cursor pagination. 3 credits per Instagram sync when you import an account this way as a source.
See the lookupsIntegrations API Connected accounts
Connect the professional accounts you manage through Juicer's OAuth, once. Juicer syncs them on your schedule for 1 credit per sync, applies your moderation rules, stores the history you read for free, and calls your webhook when a new post lands.
See syncs and webhooks01 / posts
Pull an account's posts and Reels.
Pass the username and get its recent media: caption, attached photos or video, likes and comment counts, posting time and the canonical URL. The same fields Facebook, TikTok and LinkedIn return, so one parser covers every network.
GET /data/posts in the docs →{
"data": [{
"platform": "Instagram",
"message": "Golden hour at the new store. Doors open Saturday.",
"poster": { "display_name": "yourbrand" },
"media": [{ "type": "video", "url": "https://..." }],
"like_count": 2417,
"comment_count": 389,
"url": "https://www.instagram.com/reel/..."
}],
"meta": {
"platforms": [{ "platform": "Instagram", "success": true, "has_more": true, "next_cursor": "..." }]
}
}
GET /v1/data/posts 200
03 / profiles
Resolve a username to its profile.
Up to five handles per request. An exact match returns that account with follower and post counts; otherwise you get candidates to disambiguate. Every profile carries every field, null where Instagram exposes nothing.
GET /data/profiles in the docs →{
"data": [{
"platform": "Instagram", "term": "yourbrand", "exact_match": true,
"profiles": [{
"handle": "yourbrand",
"display_name": "Your Brand",
"url": "https://www.instagram.com/yourbrand",
"verified": true,
"metrics": { "follower_count": 128400, "post_count": 942, "total_view_count": null }
}]
}]
}
GET /v1/data/profiles 200
Your Brand
instagram.com/yourbrand
- Followers
- 128,400
- Posts
- 942
04 / your own accounts
Sync the accounts you manage. Get a webhook.
Connect a professional account you manage as a feed source and Juicer syncs it on a schedule for 1 credit per sync, applies your moderation rules, keeps the history readable for free and calls your webhook when new posts land. Connection-free lookups on accounts you don't manage cost 3 credits per sync.
Webhooks in the docs →{ "platform": "Instagram", "term": "yourbrand", "term_type": "username" }
// later, on your endpoint
{
"event": "post.created",
"feed_id": 458351,
"post": { "platform": "Instagram", "message": "New this week ...", "url": "https://..." }
}
POST /v1/feeds/458351/sources 201
post.created https://yourapp.com/hooks/juicer delivered 200
Use cases
What teams build on the Instagram API
The same normalized posts serve product features, marketing sites and AI workflows.
Instagram inside your product
Show a customer's Instagram activity in your CRM, agency dashboard or community app without owning the OAuth flow. Connect their account once and read it forever.
Hashtag campaigns and UGC
Collect every public post on a campaign hashtag, run it through moderation and push the keepers to a site, a screen or a print pipeline.
Shoppable social proof for stores
Pull a brand's posts and Reels into product pages and checkout flows. Connected sources keep the proof current without a redeploy.
Monitoring and analytics
Archive posts and engagement counts for the accounts you track, yours and competitors', and chart follower growth, likes and posting cadence over time.
Instagram data for AI agents
Give an agent get_data_posts and get_data_profiles through the MCP server and it can research an account, summarize a campaign or draft captions with live context.
Retiring a hand-built Graph API integration
Replace Meta app review, expiring tokens and version deprecations with one endpoint that Juicer keeps working. Most teams migrate in a day.
Why use Juicer instead of the Instagram Graph API directly?
Reading Instagram yourself means a Meta developer app, an app review for every permission, a Business account linked to a Facebook Page, tokens that expire, media URLs that expire faster, rate limits and a Graph API version that retires every two years. Juicer carries all of it through its own reviewed Meta app.
Build it yourself
A Meta app, a review, and a pager.
- Meta app review
- Tokens expiring
- Media URLs expiring
- Graph API versions retiring
- Rate limits
- Moderation
- Webhook plumbing
- Engagement fields per version
Weeks to first post. Forever to maintain.
With the Juicer API
One key. Same JSON as 14 other networks.
- No Meta developer app
- Posts, Reels and hashtag search
- Profiles with follower counts
- Cached media that keeps working
- Moderation applied before you read
- Webhooks on new posts
- MCP server for agents
- Free Sandbox to start
The developer surface
API, MCP, webhooks, docs.
Everything on this page is one key. Reads are free; only syncs of connected sources spend credits. Sandbox is free, Builder is $99 a month, Scale $499, Platform Partner from $2,500.
REST API
GET /data/posts and /data/profiles for connection-free lookups; feeds, sources, posts, moderation and analytics for the accounts you connect.
Read the referenceMCP server
33 tools for AI agents, including get_data_posts and get_data_profiles, on every API plan including the free Sandbox.
Connect an agentWebhooks
post.created and friends, delivered to your endpoint when a connected account publishes. Test deliveries from the dashboard.
See the payloadsCredits and plans
Instagram connected source: 1 credit per sync. Premium source: 3. Reads of synced posts: free. The calculator sizes a plan for your sources and refresh rate.
Compare API plansQuestions
Frequently asked questions
What developers ask before pulling Instagram data through Juicer.
-
Do I need a Meta developer app or Graph API access?
No. API lookups run against Juicer's own infrastructure: you pass a username or hashtag and get JSON back. The only Meta login involved is optional: connecting a professional account you manage as a feed source, through Juicer's OAuth, unlocks cheaper syncs and webhooks for that account. -
Which Instagram lookups are supported?
On GET /data/posts, Instagram accepts term_type=username (an account's posts and Reels) and term_type=hashtag (public posts using a hashtag). GET /data/profiles resolves usernames to profiles with metrics. Stories and mentions are feed source types: connect the account in a feed and read them through GET /feeds/{id}/posts. -
Why do hashtag posts have no username?
Instagram's hashtag API does not expose the poster's username or profile picture, so those fields are null on hashtag results. Posts read from an account you look up or connect carry the poster as usual. -
Can I read private accounts?
No. Instagram exposes public content only; a private account returns nothing unless it is connected as your own source. -
How does pagination work?
Each call returns one upstream page of results. meta.platforms[] carries has_more and an opaque next_cursor per platform; repeat the same request with cursor=<value> to continue. Cursors are per platform, so a multi-platform request paginates each network independently. -
What does Instagram cost in credits?
Reads of already-synced posts are free. A connected Instagram source costs 1 credit per sync; a premium (connection-free) Instagram source costs 3 credits per sync. Sandbox is free; Builder is $99 a month for 750 credits, Scale $499 for 4,500, Platform Partner from $2,500. The API pricing page has the calculator. -
Is there an MCP server?
Yes. Juicer's MCP server exposes the Instagram lookups as get_data_posts and get_data_profiles, next to feed, source, moderation, analytics and webhook tools, so an AI agent can pull Instagram content without custom scrapers or OAuth flows. It is available on every API plan, including the free Sandbox. The full reference lives at developers.juicer.io. -
Can I display the posts instead of building a UI?
Yes. The same account gives you the Instagram feed widget: connect the account, pick a layout and paste one embed code. Many teams use both, the widget for the marketing site and the API for the product.
